18、(2.5分)在Spring Boot中,如何配置基于Spring Security的表单认证A、使用 SecurityConfigurerAdapter类 B、使用@EnableFormAuthentication 注解 C、使用AuthenticationManagerBuilder类 D.使用WebSecurityConfigurerAdapter类
时间: 2024-01-28 20:03:43 浏览: 63
Springboot集成spring-security实现基于验证码的登录认证项目源码+项目说明.7z
D、使用`WebSecurityConfigurerAdapter`类。在Spring Boot中,要配置基于Spring Security的表单认证,可以继承`WebSecurityConfigurerAdapter`类,并覆盖其中的`configure(HttpSecurity http)`方法,例如:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
```
这里的`configure(HttpSecurity http)`方法用于配置HTTP请求的安全处理规则,`configureGlobal(AuthenticationManagerBuilder auth)`方法用于配置认证管理器。其他选项中,`SecurityConfigurerAdapter`类是`WebSecurityConfigurerAdapter`的基类,不是用于配置表单认证的类;`@EnableFormAuthentication`注解是过时的,不再建议使用;`AuthenticationManagerBuilder`类是用于配置认证管理器的类,但没有提供直接配置表单认证的方法。
阅读全文