spring boot security oauth2 Resource Server端权限需要怎么认证?

王世春 2017-11-01 12:20:43
这是Resource Server端部分的配置:



这是Resource Server端部分的一个Controller:



我通过在认证中心认证后拿到token,然后访问Resource Server端这个/api/user 后得到如下结果:
user page
.....
getAuthentication = {"authenticated":true,"authorities":[{"authority":"admin"}],"clientOnly":false,"credentials":"","details":{"remoteAddress":"0:0:0:0:0:0:0:1","sessionId":"D15E150D3492DC0545B49B5DB56668A0","tokenType":"Bearer","tokenValue":"a0274f6d-0096-4a72-9d3b-8a551c552d90"},"name":"user","oAuth2Request":{"approved":true,"authorities":[],"clientId":"demo","extensions":{},"refresh":false,"requestParameters":{"client_id":"demo"},"resourceIds":[],"responseTypes":[],"scope":["read","write"]},"principal":"user","userAuthentication":{"authenticated":true,"authorities":[{"$ref":"$.authorities[0]"}],"credentials":"N/A","name":"user","principal":"user"}}

从{"authority":"admin"}可以看出来该用户只有admin的权限,但是他却能访问这个/api/user(需要userdsad权限)的页面,我很奇怪。

所以我最后想问的是,单点登录系统,在Resource Server端,怎么使用@PreAuthorize("hasAuthority('admin')") 这种注解,怎么使这种注解生效?
...全文
607 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cauchy6317 2018-12-18
  • 打赏
  • 举报
回复
在继承了WebSecurityConfigurerAdapter这个类上加上此注解@EnableGlobalMethodSecurity(prePostEnabled = true)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧