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]