Closed1
【Java】spring securityを導入したらcssやjsが読み込めない
対処法
securityFilterChainメソッドで、cssやjsのディレクトリを認証不要に設定する。
.requestMatchers("/css/**", "/js/**", "/images/**", "/login", "/signup")
SecurityConfig.java(該当メソッドのみ抜粋)
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
// カスタム認証プロバイダを設定
.authenticationProvider(customAuthenticationProvider)
// CORSの設定を適用
.cors(customizer -> customizer.configurationSource(corsConfigurationSource()))
// CSRFの保護を無効にする
.csrf(csrf -> csrf.disable())
// アクセス制御の設定
.authorizeHttpRequests(authorizeRequests -> authorizeRequests
.requestMatchers("/css/**", "/js/**", "/images/**", "/login", "/signup")
.permitAll() // ログインページ、新規登録ページ、OAuth2エンドポイントは認証なしでアクセス可能
.anyRequest().authenticated())
.formLogin(formLogin -> formLogin
.loginPage("/login") // ログインページのURL
.defaultSuccessUrl("/login/success")
.failureHandler(authenticationFailureHandler())
.permitAll())
.oauth2Login(oauth2Login -> oauth2Login
.loginPage("/login") // ログインページのURL
.defaultSuccessUrl("/login/success") // ログイン成功後のリダイレクト先
)
.logout(logout -> logout
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID"))
.csrf(csrf -> csrf.disable()); // CSRF保護を無効化
return http.build();
}
}
参考
このスクラップは2024/02/27にクローズされました