Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Spring OAUTH2 JWT将用户权限映射到作用域_Json_Web Services_Jwt_Access Token_Spring Security Oauth2 - Fatal编程技术网

Json Spring OAUTH2 JWT将用户权限映射到作用域

Json Spring OAUTH2 JWT将用户权限映射到作用域,json,web-services,jwt,access-token,spring-security-oauth2,Json,Web Services,Jwt,Access Token,Spring Security Oauth2,在spring JWT中,当我将所有用户权限映射到accesstoken作用域时,我有一个关于我的用户权限映射到accesstoken作用域的问题,事实上,如下所示: public class AuthorityTokenEnhancer implements TokenEnhancer { @Override public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication

在spring JWT中,当我将所有用户权限映射到accesstoken作用域时,我有一个关于我的用户权限映射到accesstoken作用域的问题,事实上,如下所示:

public class AuthorityTokenEnhancer implements TokenEnhancer {
    @Override
    public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
        User user = (User) authentication.getPrincipal();
        final ImmutableMap<String, Object> additionalInfo = ImmutableMap
                .builder()
                .put("authorities", user.getAuthorities())
                .build();
        ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo);
        ((DefaultOAuth2AccessToken) accessToken).setScope(user.getPermissions());
        return accessToken;
    }
}
公共类AuthorityTokenEnhancer实现TokenEnhancer{
@凌驾
公共OAuth2AccessToken增强(OAuth2AccessToken accessToken,OAuth2Authentication身份验证){
User=(用户)身份验证。getPrincipal();
最终ImmutableMap additionalInfo=ImmutableMap
.builder()
.put(“authorities”,user.getAuthorities())
.build();
((DefaultOAuth2AccessToken)accessToken).setAdditionalInformation(additionalInfo);
((DefaultOAuth2AccessToken)accessToken).setScope(user.getPermissions());
返回accessToken;
}
}
当我想通过
@PreAuthorize(“hasRole('ROLE_USER')
\oauth2.hasScope('XXXXX'))注释在我的Web服务中测试这一点时。它不起作用,因为检查基于客户端范围而不是用户accesstoken范围?有没有办法通过使用
#oauth2.hasScope('XXXXX')
注释来使用访问令牌作用域(表示我的用户权限)而不是客户端作用域?我该怎么做