public class MySecurityConfigurerAdapter extends WebSecurityConfigurerAdapter
时间: 2023-10-12 09:17:23 浏览: 79
Class属性Extends和Implements的区别示例介绍
5星 · 资源好评率100%
MySecurityConfigurerAdapter 是一个自定义的安全配置适配器类,继承了 Spring Security 的 WebSecurityConfigurerAdapter 类。它可以用来配置 Spring Security 的安全策略,例如认证方式、访问控制等。在这个类中,你可以重写 configure() 方法来实现安全策略的配置,例如:
```
@Configuration
@EnableWebSecurity
public class MySecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN", "USER")
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID");
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
```
这个配置类实现了对不同 URL 路径的访问权限控制和用户认证方式的配置。例如,对于 /admin/** 的 URL 路径,只有拥有 ADMIN 角色的用户才能访问;对于 /user/** 的 URL 路径,拥有 ADMIN 或 USER 角色的用户都可以访问;对于 /public/** 的 URL 路径,任何用户都可以访问。同时,配置了用户认证方式为从数据库中获取用户信息,并使用 BCryptPasswordEncoder 进行密码加密。
阅读全文