Spring OAuth2は、ヘッダ:Authorization Bearer xxxを持つすべてのURLをインターセプトします。
Spring OAuth2がURLを傍受しないようにするには私は、SpringのOAuth2設定よりも高次のSecurityConfigurationを作成しました。
@Configuration
@EnableWebSecurity
@Order(1) // this is important to run this before Spring OAuth2
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
List<RequestMatcher> requestMatchers = new ArrayList<RequestMatcher>();
// allow /api/public/product/** and /api/public/content/** not intercepted by Spring OAuth2
requestMatchers.add(new AntPathRequestMatcher("/api/public/product/**"));
requestMatchers.add(new AntPathRequestMatcher("/api/public/content/**"));
http
.requestMatcher(new OrRequestMatcher(requestMatchers))
.authorizeRequests()
.antMatchers("/api/public/product/**", "/api/public/content/**").permitAll()
}
}
以上の構成は、この構成がより高い@Orderを有するので**この構成によって、しないばねのOAuth2によって処理される//API /パブリック/製品/ **及び/ API /パブリック/コンテンツを可能にします。
したがって、無効なトークンを上記のapi呼び出しに設定しても、無効なアクセストークンは発生しません。
解決策を見つけましたか? –