SpringScerity的使用
1.1 加入SpringSecurity依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.10.RELEASE</version>
</dependency>
<!-- SpringSecurity配置 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.10.RELEASE</version>
</dependency>
<!-- SpringSecurity标签库 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>4.2.10.RELEASE</version>
</dependency>
1.2
加入SpringSecurity控制权限的FilterSpringSecurity使用的是过滤器Filter而不是拦截器Interceptor,意味着SpringSecurity能够管理的不仅仅是SpringMVC中的handler请求,还包含Web应用中所有请求。比如:项目中的静态资源也会被拦截,从而进行权限控制。
特别注意:springSecurityFilterChain标签中必须是springSecurityFilterChain。因为springSecurityFilterChain在IOC容器中对应真正执行权限控制的二十几个Filter,只有叫这个名字才能够加载到这些Filter。
1.3编写配置类
@Configuration //标记当前类为配置类
@EnableWebSecurity //启用web环境下的权限控制功能
public class WebAppSecurityConfig extends WebSecurityConfigurerAdapter {
//重写WebSecurityConfigurerAdapter 下的configure方法,否则所有都会被拦截
protected void configure(HttpSecurity security) throws Exception { logger.debug(“Using default configure(HttpSecurity). If subclassed this will potentially override subclass configure(HttpSecurity).”);
}
效果l 所有请求都被SpringSecurity拦截,要求登录才可以访问。l 静态资源也都被拦截,要求登录。l 登录失败有错误提示。