@EnableWebSecuritypublic怎么用
时间: 2023-07-05 22:06:59 浏览: 39
`@EnableWebSecurity` 是一个注解,用于启用 Spring Security 的 Web 安全功能。你可以将其添加到一个 `@Configuration` 类上,以启用 Spring Security 的默认 Web 安全配置。
下面是一个简单的示例:
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig 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("{noop}password").roles("USER");
}
}
```
在这个例子中,我们创建了一个 `WebSecurityConfig` 类,并使用 `@EnableWebSecurity` 注解来启用 Spring Security 的默认 Web 安全配置。我们还扩展了 `WebSecurityConfigurerAdapter` 类,并覆盖了其中的 `configure(HttpSecurity http)` 和 `configureGlobal(AuthenticationManagerBuilder auth)` 方法,以提供自定义的配置。
在 `configure(HttpSecurity http)` 方法中,我们指定了如何配置 HTTP 安全性。我们允许所有用户访问根路径和 "/home",但对所有其他请求都要求进行身份验证。我们还配置了登录页面和注销功能。
在 `configureGlobal(AuthenticationManagerBuilder auth)` 方法中,我们提供了一个用户认证机制。在这个例子中,我们使用了内存认证,创建了一个名为 "user" 的用户和一个密码为 "password" 的角色为 "USER" 的用户。注意,我们在密码前面添加了 "{noop}",这是因为 Spring Security 5 以上版本需要使用密码加密,但我们在这里使用了明文密码,所以需要添加 "{noop}" 来指示 Spring Security 不要对密码进行加密。
这只是一个简单的示例,实际上 `@EnableWebSecurity` 还有许多其他的配置选项和方法,可以根据具体的需求进行调整和扩展。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)