困扰我无数天的问题,Spring Oauth 授权 总是 Access Denied, 403 错误。快要到答案了,有点小激动(已解决)

unanimousbased

Spring 整个就是一个坑,所有人都往里面跳,我也只好跟着跳。

Spring Oauth2 是坑中的坑。

Spring Oauth2 各种授权都做了,token 也对了,但是总是报403错误。

光是找到抛出整个错误的地方都费我好长时间,水真的是太深了。
<beans:bean id=”oauth2AccessDeniedHandler”
class=”org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler” />

只有通过在这里打断点进去,一步一步,才能找得到错误抛出的地方哦,不然根本别想。

<intercept-url pattern=”/unity/**” access=”ROLE_UNITY,SCOPE_READ”/>

最终答案揭晓:

例子程序中的admin 用户 根本 不具有权限。

使用unity 登录就可以了。被坑惨了。

角色投票器根据access 中的权限来校验,需要说明的是,逗号分隔的每项权限是 “与”的关系,而不是“或”的关系,我第一的反应跟猜测是“或”,但是错了。