作用:spring security为企业级应用提供声明式安全访问和权限控制解决方案的框架。提供了一组可以在Spring应用上下文中配置的Bean,减少了为企业系统安全控制编写大量重复代码的工作。
<img src=''/>
一。初级:简单的登陆验证,账号和密码直接配置在xml文件中
在pom.xml中添加:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
在web.xml中添加:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
spring security框架是完全基于servlet过滤器的,没有在内部使用servlet和其它任何基于servlet的框架(e.g. springmvc),所以与任何其它web技术都没有强行关联。它只管处理HttpServletRequest 和HttpServletResponse,不关心请求时来自浏览器,web服务客户端,还是一个AJAX应用。
spring security 维护了一个过滤器链,每个过滤器都拥护各自的功能,相应服务可以增加或删除。使用命令空间配置时,相应的spring bean会自动配置,但有时候会自定义类,以实现特别的功能。
当你使用servlet过滤器时,需要在web.xml中声明。在spring security,要使用过滤器,通常需要定义过滤器DelegatingFilterProxy,这个过滤器里没有实现过滤器的任何逻辑,只是代理filter方法,从application context里获得bean。这让bean可以获得spring web application context的生命周期支持,使配置较为轻便。这个DelegatingFilterProxy实际可以看做一个servlet过滤链,其中的每个过滤器可以在application context中配置。
接下来在application context中配置:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<!--登录页面不过滤 -->
<http pattern="/login.jsp*" security="none" />
<http use-expressions="false" auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page='/login.jsp'/>
<csrf disabled="true"/>
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="user" password="111" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
参考:
http://www.tianshouzhi.com/api/tutorials/spring_security_4/272
...