Spring Security权限控制可以配合授权注解使用,具体有哪些注解可以参考Spring-Security保护方法。接着上一节,要开启这些注解,只需要在Spring Security配置文件中添加如下注解:
1 |
|
在UserDetailService
中,我们给当前登录用户授予了”admin”的权限,我们将这块代码改造一下:当登录用户为mrbird的时候,其拥有”admin”权限,其他用户则只有”test”权限:
1 |
|
添加一个方法,并且使用权限注解标明只有拥有“admin”权限的人才能访问:
1 | "/auth/admin") ( |
启动系统,使用mrbird账号登录:
可看到,mrbird可以访问该资源。
使用scott账号登录:
可以看到,soctt没有权限访问,返回403错误码。
我们可以自定义权限不足处理器来处理权限不足时候的操作。
新增一个处理器MyAuthenticationAccessDeniedHandler
,实现AccessDeniedHandler
接口:
1 |
|
然后将这个处理器添加到Spring Security配置链中: @Autowired private MyAuthenticationAccessDeniedHandler authenticationAccessDeniedHandler;
1 |
|
重启系统,再次使用scott账号访问/auth/admin
:
源码链接:https://github.com/wuyouzhuguli/SpringAll/tree/master/61.Spring-security-Permission