• SpringSecurity注解的使用


    @Secured

    判断用户具有某个角色,只有具有相应角色才可以调用方法

    1. 开启注解功能

      使用注解先要开启注解功能!可以在启动类上,也可以在配置类上添加

      @EnableGlobalMethodSecurity(securedEnabled = true)
      public class SecurityConfig extends WebSecurityConfigurerAdapter {
      
    2. 在控制器方法上添加注解

      @GetMapping("update")
      @Security({"ROLE_sale", "ROLE_manager"})
      public String update(){
      

      判断是否具有角色,另外需要注意的是这里匹配的字符串需要添加前缀“ROLE_",因为在源码中SpringSecurity对hasRole方法做了如下处理

      image-20210205161848163

    @PreAuthorize

    在进入方法前进行权限验证

    1. 开启方法前后验证注解

      @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
      

      也就是 prePostEnable = true

    2. 在控制器方法上面添加注解

      @GetMapping
      @PreAuthorize("hasAnyAuthority('admin')")
      public String update(){
      

    @PostAuthorize

    在进入方法后进行权限验证

    1. 开启验证注解,同上

    2. 在控制器方法上面添加注解

      @GetMapping
      @PostAuthorize("hasAnyAuthority('admin')")
      public String update(){
      

    @PreFilter

    进入控制器之前对数据进行过滤

    @GetMapping
    @PostAuthorize("hasAnyAuthority('admin')")
    @PreFilter(value = "filterObject.id%2==0")
    public String update(@RequestBody List<UserInfo> list){
        list.forEach(t -> {
    		System.out.println(t.getId() + ":" + t.getName());
        })
    

    上述注解的作用就是,如果 UserInfo 的 id 能被 2 整除,就传递 list 中

    @PostFilter

    @GetMapping
    @PostAuthorize("hasAnyAuthority('admin')")
    @PreFilter(value = "filterObject.username=='admin'")
    public String update(@RequestBody List<UserInfo> list){ 
        ArrayList<User> list = new ArrayList<>();
        list.add(new User(1, "admin"));
    	list.add(new User(1, "user"));
        return list
    }
    

    上述注解的作用就是,留下 list 中 username 为 admin 的对象

    作者: 贺墨于
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    数据类型转换(日期格式转换)
    TextArea控件实时计算总字数,总行数,和每行显示的最大字数
    Java--->判断IP和端口是否可连接
    JavaFX校验IP和端口的合法性
    JavaFX与NetBeans开发工具的一些总结
    Web Service深度剖析
    Spring中AOP和IOC深入理解
    Spring aspect 两种方式实现五种增强
    Struts2错题总结
    Hibernate检索方式和Criteria查询的讲解
  • 原文地址:https://www.cnblogs.com/hemou/p/14379062.html
Copyright © 2020-2023  润新知