Spring Security在6.0弃用WebSecurityConfigurationAdapter后该如何自定义配置介绍(新旧示例)
在Spring Security 6.0中,WebSecurityConfigurationAdapter
已被弃用。如果您需要自定义安全配置,可以实现WebSecurityCustomizer
接口或者继承WebSecurityConfigurerAdapter
的替代方法。
以下是一个使用WebSecurityCustomizer
的示例:
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
import org.springframework.stereotype.Component;
@Component
public class CustomWebSecurity implements WebSecurityCustomizer {
@Override
public void customize(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll();
}
}
如果您需要更多的自定义,可以创建一个配置类,使用@EnableWebSecurity
注解,并提供一个继承了WebSecurityConfigurerAdapter
的类,但不要覆盖configure(HttpSecurity)
方法。
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 其他自定义配置...
}
然后创建一个配置类来提供额外的配置:
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.stereotype.Component;
@Component
public class CustomWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll();
}
}
确保这些配置类能够被Spring扫描到,例如通过@ComponentScan
或者将它们放在正确的包中。
评论已关闭