アノテーションインターフェース EnableWebSecurity
@RetentionSE(RUNTIMESE)
@TargetSE(TYPESE)
@DocumentedSE
@Import({WebSecurityConfiguration.class,org.springframework.security.config.annotation.web.configuration.SpringWebMvcImportSelector.class,org.springframework.security.config.annotation.web.configuration.OAuth2ImportSelector.class,org.springframework.security.config.annotation.web.configuration.HttpSecurityConfiguration.class,org.springframework.security.config.annotation.web.configuration.ObservationImportSelector.class})
@EnableGlobalAuthentication
public @interface EnableWebSecurity
このアノテーションを
@Configuration クラスに追加して、Spring Security 構成を任意の WebSecurityConfigurer で定義するか、SecurityFilterChain Bean を公開する可能性が高くなります。
@Configuration
@EnableWebSecurity
public class MyWebSecurityConfiguration {
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return (web) -> web.ignoring()
// Spring Security should completely ignore URLs starting with /resources/
.requestMatchers("/resources/**");
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((authorize) -> authorize
.requestMatchers("/public/**").permitAll()
.anyRequest().hasRole("USER"))
// Possibly more configuration ...
.formLogin() // enable form based log in
// set permitAll for all URLs associated with Form Login
.permitAll();
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build();
UserDetails admin = User.withDefaultPasswordEncoder()
.username("admin")
.password("password")
.roles("ADMIN", "USER")
.build();
return new InMemoryUserDetailsManager(user, admin);
}
// Possibly more bean methods ...
}
- 導入:
- 3.2
- 関連事項:
オプション要素の概要
オプション要素
要素の詳細
debug
boolean debugSpring Security のデバッグサポートを制御します。デフォルトは false です。- 戻り値:
- true の場合、Spring Security でデバッグサポートを有効にします
- デフォルト:
- false