SpringSecurity权限控制实现原理解析

菜单控制:

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了辽阳县免费建站欢迎大家使用!

SpringSecurity权限控制实现原理解析

SpringSecurity权限控制实现原理解析

可以用来判断这个用户是不是有这些角色,没有的话就不展示

SpringSecurity权限控制实现原理解析

SpringSecurity权限控制实现原理解析

数据控制:

由于数据都是从后端查的,在后端控制权限就可以了


  

注:这个要放在mvc的容器中,因为子容器可以访问到主容器,主容器访问不到子容器

/表示当前类中所有方法都需要ROLE_ADMIN或者ROLE_PRODUCT才能访问
@Controller
@RequestMapping("/product")
@RolesAllowed({"ROLE_ADMIN","ROLE_PRODUCT"})//JSR-250注解
public class ProductController {
@RequestMapping("/findAll")
public String findAll(){
return "product-list";
}
}
//表示当前类中findAll方法需要ROLE_ADMIN或者ROLE_PRODUCT才能访问
@Controller
@RequestMapping("/product")
public class ProductController {
@RequestMapping("/findAll")
@PreAuthorize("hasAnyRole('ROLE_ADMIN','ROLE_PRODUCT')")//spring表达式注解
public String findAll(){
return "product-list";
}
}
//表示当前类中所有方法都需要ROLE_ADMIN或者ROLE_PRODUCT才能访问
@Controller
@RequestMapping("/product")
@Secured({"ROLE_ADMIN","ROLE_PRODUCT"})//SpringSecurity注解
public class ProductController {
@RequestMapping("/findAll")
public String findAll(){
return "product-list";
}
}

但是会报403无法访问

方式一:在 spring-security.xml配置文件中处理






方式二:在 web.xml中处理


  403
  /403.jsp

方式三:编写异常处理器

/**
 * @author WGR
 * @create 2020/3/2 -- 17:33
 */
@ControllerAdvice
public class ControllerExceptionAdvice {

  //只有出现AccessDeniedException异常才调转403.jsp页面
  @ExceptionHandler(AccessDeniedException.class)
  public String exceptionAdvice(){
    System.out.println("1234");
    return "forward:/403.jsp";
  }
}

注:如果是spring项目,也要把这个扫描进去。

SpringSecurity权限控制实现原理解析

SpringSecurity权限控制实现原理解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


文章标题:SpringSecurity权限控制实现原理解析
转载注明:http://scyanting.com/article/pciocg.html