简介
SpringSecurity是针对spring项目的安全框架,也是springboot底层安全默认的技术选型,它可以实现强大的web安全控制,我们仅需要引入spring-boot-starter-security模块,进行少量但是配置,即可实现强大的安全管理。
常用的类
WebSecurityConfigurer:自定义Security策略
AuthenticationManagerBuilder:自定义认证策略
@EnableWebSecurity:开启WebSecurity模式
步骤
导入依赖
1 2 3 4
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
|
配置
1 2 3 4 5 6 7 8 9
| @EnableWebSecurity public class WebConfig extends WebSecurityConfigurerAdapter {
@Override protected void configure(HttpSecurity http) throws Exception { super.configure(http); } }
|
详细配置,授权模式
1 2 3 4 5 6 7 8 9 10 11 12
| @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeHttpRequests().antMatchers("/").permitAll() .antMatchers("department/**").hasRole("zss");
http.formLogin(); http.logout(); }
|
虽然拦截器也可以做到这种功能,但是拦截器功能比较麻烦,而且代码繁琐,我们来看一拦截器实现的代码
1 2 3 4 5 6
| @Override public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor( loginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/index","/login","/js/**","/css/**"); }
|
认证模式
1 2 3 4
| @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("zss").password("200101").roles("zss"); }
|