@Configuration public class SecurityConfiguration { @Bean public WebSecurityCustomizer webSecurityCustomizer() { 什么意思,有哪些操作,每个操作示范一下
时间: 2024-06-12 08:03:52 浏览: 125
这段代码定义了一个Spring Security的配置类,其中包含一个名为webSecurityCustomizer的@Bean方法,用于自定义WebSecurity的配置。
webSecurityCustomizer方法返回一个WebSecurityCustomizer对象,该对象提供了一些方法,可以用来配置WebSecurity的各个方面,例如:
1. 忽略某些URL:可以调用ignore()方法来忽略一些URL,比如静态资源文件等。
示例代码:
```java
public WebSecurityCustomizer webSecurityCustomizer() {
return web -> web.ignoring().antMatchers("/css/**", "/js/**");
}
```
2. 配置登录页面和认证信息:可以调用formLogin()方法来配置登录页面和认证信息。
示例代码:
```java
public WebSecurityCustomizer webSecurityCustomizer() {
return web -> web.formLogin()
.loginPage("/login")
.usernameParameter("username")
.passwordParameter("password")
.defaultSuccessUrl("/home")
.failureUrl("/login?error=true");
}
```
3. 配置访问权限:可以调用authorizeRequests()方法来配置访问权限。
示例代码:
```java
public WebSecurityCustomizer webSecurityCustomizer() {
return web -> web.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("USER", "ADMIN")
.anyRequest().authenticated();
}
```
这里配置了两个URL的访问权限,/admin/**需要ADMIN角色才能访问,/user/**需要USER或ADMIN角色才能访问,其他URL需要认证后才能访问。
4. 配置退出登录:可以调用logout()方法来配置退出登录。
示例代码:
```java
public WebSecurityCustomizer webSecurityCustomizer() {
return web -> web.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID");
}
```
这里配置了退出登录的URL和成功后跳转的URL,还清除了HttpSession和删除了JSESSIONID的Cookie。
阅读全文