spring security 配置
时间: 2023-09-11 22:06:44 浏览: 91
Spring Security 是一个强大且灵活的框架,用于在 Spring 应用程序中进行身份验证和授权管理。下面是一个简单的 Spring Security 配置示例:
1. 添加 Maven 依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 创建一个继承自 `WebSecurityConfigurerAdapter` 的配置类,并重写 `configure` 方法:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/public").permitAll() // 公共资源不需要身份认证
.anyRequest().authenticated() // 其他请求需要认证
.and()
.formLogin() // 使用表单登录
.and()
.logout().logoutSuccessUrl("/login").permitAll(); // 登出后跳转到登录页
}
}
```
在上述配置中:
- `authorizeRequests()` 定义了哪些请求需要进行身份认证。
- `antMatchers()` 指定了不需要身份认证的请求路径。
- `anyRequest().authenticated()` 表示其他请求都需要进行认证。
- `formLogin()` 开启表单登录方式。
- `logout()` 配置了登出功能。
3. 添加用户认证配置:
```java
@Configuration
public class UserConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("{noop}password").roles("USER")
.and()
.withUser("admin").password("{noop}password").roles("USER", "ADMIN");
}
}
```
这里使用了内存认证,定义了两个用户:user 和 admin,密码都是 password,并分别赋予了不同的角色。
以上是一个简单的 Spring Security 配置示例,你可以根据自己的业务需求进行更详细的配置和定制化。
阅读全文