Spring security中的注解

一、@Secured

作用:用户具有某个角色,可以访问方法

使用:

在启动类或配置内开启注解

@EnableGlobalMethodSecurity(securedEnabled = true)

在Controller的方法上加注解(注意要在角色名前加上ROLE_)

@RestController
public class MyController {


    @RequestMapping(value = "/test")
    @Secured({"ROLE_normal","ROLE_admin"})
    public String test()
    {
        return "test";
    }


}

 

二、@PreAuthorize

作用:进入方法前验证权限

使用:

在启动类或配置内开启注解

@EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true)

 在controller的方法上添加注解

@RestController
public class MyController {


    @RequestMapping(value = "/test")
    @PreAuthorize("hasAnyAuthority('admins')")
    public String test()
    {
        return "test";
    }


}

三、@PostAuthorize

作用:在方法执行后再进行权限验证,适合验证带有返回值的权限

使用:

 在启动类或配置内开启注解

@EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true)

 在controller的方法上添加注解

@RestController
public class MyController {


    @RequestMapping(value = "/test")
    @PostAuthorize("hasAnyAuthority('admins')")
    public String test()
    {
        return "test";
    }


}

四、@PostFilter

作用:权限验证之后对数据进行过滤(对方法返回数据进行过滤)

@PostFilter("filterObject.username == 'myname'")

五、@PreFilter

作用:进入控制器之前对数据进行过滤(传入方法数据进行过滤)

@PreFilter(value = "filterObject.id%2==0")

上一篇:security Oauth2


下一篇:01->SpringSecurity认证框架的自定义配置(微服务第一步)