実現したいこと
Spring Securityで独自認証機能を動作させたいです。
困っていること・教えていただきたいこと
AuthenticationProviderを実装した独自認証Providerクラスを作成して、コンフィグのAuthenticationManagerBuilderに組み込んで、APIリクエストしても(http://localhost:8080/*** をブラウザで実行しても)、AuthenticationProviderのauthenticateメソッドで定義している内容が実行されません。
コンフィグあるいはAuthenticationProviderに設定しなければならないことをご教授いただきたいです。
※ 一旦、疎通だけ確認したいので、authenticateの内容はチェックではなくSystem.out.printのみです。
ソースコード
SecurityConfig.java
@EnableWebSecurity @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private DatabaseUserDetailsService userDetailsService; @Autowired private CustomAuthenticationProvider authenticationProvider; @Override protected void configure(HttpSecurity http) throws Exception { // 認証不要API String[] nonAuthAPIs = {***(略)} // @formatter:off // 認可設定 http.authorizeRequests() .antMatchers(nonAuthAPIs).permitAll()// 認証不要 .anyRequest().authenticated()// 上記以外は、認証が必要(認証されてない場合は403) .and().cors().configurationSource(corsConfigurationSource())// CORS対策 .and().csrf().disable()// CSRF対策:無効化 ; // @formatter:on } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(authenticationProvider)// 認証プロバイダー .userDetailsService(userDetailsService);// 認証に使用するuserDetailsを設定する } /** CORS詳細設定 */ @Bean CorsConfigurationSource corsConfigurationSource() {*** (略)} }
CustomAuthenticationProvider.java
@Component public class CustomAuthenticationProvider implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { System.out.println("CustomAuthenticationProviderによる独自認証を実行"); return new UsernamePasswordAuthenticationToken("", "", null); } @Override public boolean supports(Class<?> authentication) { return true; } }
あなたの回答
tips
プレビュー