WebSecurityConfigurerAdapter需要实现哪些方法,这些方法都是干嘛的,能举个例子说明吗
时间: 2023-10-26 09:12:06 浏览: 136
java中Spring Security的实例详解
WebSecurityConfigurerAdapter需要实现以下方法:
1. configure(HttpSecurity http):用于配置Spring Security的过滤器链,定义哪些URL需要被保护,哪些不需要被保护,以及不同的角色是否可以访问某个URL。
例如:
```
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
```
上面的代码表示,访问“/admin/**”的URL需要ADMIN角色,访问“/user/**”的URL需要ADMIN角色或USER角色,其他URL需要认证后才能访问。登录页面为“/login”,退出页面为默认值“/logout”。
2. configure(AuthenticationManagerBuilder auth):用于配置Spring Security的身份验证方式,例如使用内存、数据库、LDAP等方式进行身份验证。
例如:
```
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin").password("admin").roles("ADMIN")
.and()
.withUser("user").password("user").roles("USER");
}
```
上面的代码表示,在内存中配置了两个用户,密码分别为“admin”和“user”,角色分别为“ADMIN”和“USER”。
3. configure(WebSecurity web):用于配置Spring Security的FilterChainProxy,可以设置忽略某些URL或静态资源的安全保护。
例如:
```
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/css/**", "/js/**", "/images/**");
}
```
上面的代码表示,忽略所有以“/css/”、“/js/”和“/images/”开头的URL及其静态资源的安全保护。
4. configure(HttpSecurity http, AuthenticationManagerBuilder auth):用于同时配置HttpSecurity和AuthenticationManagerBuilder。
例如:
```
@Override
protected void configure(HttpSecurity http, AuthenticationManagerBuilder auth) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
auth.inMemoryAuthentication()
.withUser("admin").password("admin").roles("ADMIN")
.and()
.withUser("user").password("user").roles("USER");
}
```
上面的代码同时配置了HttpSecurity和AuthenticationManagerBuilder,定义了访问控制规则和身份验证方式。
阅读全文