springsecurity配置类
时间: 2023-09-06 12:08:26 浏览: 44
以下是一个基本的 Spring Security 配置类示例:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
```
此配置类使用 `@EnableWebSecurity` 注解启用 Spring Security,并继承 `WebSecurityConfigurerAdapter` 类来提供默认的基本 Web 安全性配置。`configure(HttpSecurity http)` 方法配置了 HTTP 安全性,包括访问控制和表单登录。`configureGlobal(AuthenticationManagerBuilder auth)` 方法配置了身份验证管理器,使用 `userDetailsService` 来查询用户信息。`passwordEncoder()` 方法返回一个密码编码器,用于加密和验证密码。