- 在资源服务器的配置中,添加了请求白名单,如下
- @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时,能获取到返回结果
但当请求添加上请求头时(这里是前端做了同一的处置惩罚,到后端的请求会同一携带Authorization等token信息),但是对于我的资源服务接口来说,我不想管前端的请求是否携带请求头token,都想根据白名单不进行oauth2的鉴权操作,但是现实是如许照旧会触发鉴权
可以通过重写WebSecurityConfigurerAdapter的 configure()方法,使白名单请求不受Spring Security的保护。如许纵然请求中包罗Authorization头,也不会触发鉴权(在资源服务器中添加)。
- @Configuration
- public class SecurityConfig extends WebSecurityConfigurerAdapter {
- @Override
- public void configure(WebSecurity web) throws Exception {
- web.ignoring().antMatchers("/test/test2");
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |