Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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
Spring security 自定义oauth2请求的作用域_Spring Security_Spring Security Oauth2 - Fatal编程技术网

Spring security 自定义oauth2请求的作用域

Spring security 自定义oauth2请求的作用域,spring-security,spring-security-oauth2,Spring Security,Spring Security Oauth2,我的用例是定制用户请求的oauth2作用域,并只授予用户过滤的作用域, 例如:User1想要生成令牌,他的ldap角色是R1,我有一个R1->read,write的映射表 因此,我希望该用户只获取映射的作用域,而不考虑请求的作用域 我正在尝试在@EnableWebSecurity类中添加筛选器: @覆盖 受保护的无效配置(最终HttpSecurity HttpSecurity)引发异常{ httpSecurity.addFilterAfter(新的OAuth2UsernamePasswordAu

我的用例是定制用户请求的oauth2作用域,并只授予用户过滤的作用域, 例如:User1想要生成令牌,他的ldap角色是R1,我有一个R1->read,write的映射表 因此,我希望该用户只获取映射的作用域,而不考虑请求的作用域

我正在尝试在@EnableWebSecurity类中添加筛选器:

@覆盖
受保护的无效配置(最终HttpSecurity HttpSecurity)引发异常{
httpSecurity.addFilterAfter(新的OAuth2UsernamePasswordAuthenticationFilter(authenticationManager()),UsernamePasswordAuthenticationFilter.class)}

但是当我调用/oauth/token API时,不会调用attemptAuthentication方法,如果我放置除/oauth/generate之外的任何其他API,就会调用它 我的OAuth2UsernamePasswordAuthenticationFilter扩展了AbstractAuthenticationProcessingFilter


。是否有更好的解决方案通过拦截请求来限制请求的作用域?如有任何帮助,将不胜感激。谢谢

用户没有任何作用域,这是一个客户端功能。用户可以为特定客户端授予作用域。如果要限制客户端的作用域,可以更改客户端注册。用户获取作用域是指为用户名和密码生成令牌后生成的最终作用域。我的问题现在解决了,我使用了自定义令牌增强器并获取了角色范围映射。之后,我将令牌的作用域限制为筛选的作用域列表。谢谢