来自云龙湖轮廓分明的月亮 发表于 2024-12-8 21:43:45

OAuth2资源服务器白名单接口带token被拦截

在资源服务器的配置中,添加了请求白名单,如下
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
    @Autowired
    private OAuth2Properties properties;
    @Override
    public void configure(HttpSecurity http) throws Exception {
      http
                .authorizeRequests()
                .antMatchers("/test/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .csrf().disable();
    }
    @Bean
    public RemoteTokenServices tokenServices() {
      RemoteTokenServices services = new RemoteTokenServices();
      services.setCheckTokenEndpointUrl(properties.getTokenInfoUri());
      services.setClientId(properties.getClientId());
      services.setClientSecret(properties.getClientSecret());
      return services;
    }
} 测试controller
@RestController
@RequestMapping("/test")
public class TestController {
    @PostMapping("/test1")
    public String test1() {
      System.out.println(123);
      return "123";
    }
    @PostMapping("/test2")
    public String test2() {
      System.out.println(333);
      return "222333";
    }
} 当利用postman正常请求http://localhost:8109/test/test2时,能获取到返回结果
https://i-blog.csdnimg.cn/direct/15de4a6741b241f196f0627c9c9c9ae2.png
但当请求添加上请求头时(这里是前端做了同一的处置惩罚,到后端的请求会同一携带Authorization等token信息),但是对于我的资源服务接口来说,我不想管前端的请求是否携带请求头token,都想根据白名单不进行oauth2的鉴权操作,但是现实是如许照旧会触发鉴权
https://i-blog.csdnimg.cn/direct/2f9384a5687b4ccb8f13a4e8c3dddc6a.png
可以通过重写WebSecurityConfigurerAdapter的 configure()方法,使白名单请求不受Spring Security的保护。如许纵然请求中包罗Authorization头,也不会触发鉴权(在资源服务器中添加)。
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(WebSecurity web) throws Exception {
      web.ignoring().antMatchers("/test/test2");
    }
}
https://i-blog.csdnimg.cn/direct/b62fb3689e6b49169fea7f9577dfcc64.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: OAuth2资源服务器白名单接口带token被拦截