この記事に従って、Spring Security でカスタム ステートレス認証を実装しようとしています。
私が直面している問題は、SecurityConfig が前のリンクとほとんど同じように見える場合でも、カスタム フィルターがフレームワークによって呼び出されていないことです (少し単純です)。
@Configuration
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
@Qualifier("appAuthenticationProvider")
private AuthenticationProvider authenticationProvider;
@Autowired
@Qualifier("appAuthenticationFilter")
private AppAuthenticationFilter appAuthenticationFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable().
sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests().anyRequest().authenticated()
.and()
.anonymous().disable()
.exceptionHandling().authenticationEntryPoint(unauthorizedEntryPoint());
http.addFilterBefore(appAuthenticationFilter, BasicAuthenticationFilter.class);
}
@Bean
public AuthenticationEntryPoint unauthorizedEntryPoint() {
return (request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
}
authenticationProviderとappAuthenticationFilterのコードは投稿しません。前者は正常に動作しており (/login エンドポイントを使用してログインできます)、後者は GenericFilterBean を実装するだけで呼び出されていないからです。
どんな助けでも大歓迎です!