一.使用流程案例
1.1 新建web项目,配置maven依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
1.2 配置web.xml文件,在web.xml文件中配置SpringSecurity委派过滤器
<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>
1.3 在resource下配置Spring配置文件applicationContext-security.xml
1.3.1 配置拦截的请求URL
<!-- 配置哪些请求地址不需要拦截 security属性要设置为none,否则会反复重定向,报不能正确重定向的问题-->
<security:http
pattern="/login.html" security="none"/>
<security:http
pattern="/login_error.html" security="none"/>
<!--
<security-http use-expressions=”false”>:是否使用使用 Spring 表达式语言(SpEL),默认为true ,如果开启,则拦截的配置应该写成以下形式:
<security:intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>
-->
<security:http use-expressions="false">
<!--
配置拦截的请求URL,通过什么角色或权限访问
/* 表示的是该目录下的资源,只包括本级目录不包括下级目录
/** 表示的是该目录以及该目录下所有级别子目录的资源
-->
<security:intercept-url pattern="/**" access="ROLE_USER"/>
<!-- 配置开启表单登录
login-page: 配置自己的登录页面
authentication-success-forward-url: 认证成功需要跳转的URL
authentication-failure-url: 认证失败需要跳转的URL
password-parameter: 密码请求参数名称
username-parameter: 用户名请求参数名称
-->
<security:form-login login-page="/login.html"
authentication-success-forward-url="/login_success.html"
authentication-failure-url="/login_error.html"
password-parameter="password"
username-parameter="username"/>
<!--
关闭跨站点请求伪造CSRF 对网站的恶意利用 -->
<security:csrf disabled="true"/>
<!--
配置开启表单登录 -->
<security:form-login/>
</security:http>
1.3.2 配置认证管理器
<security:authentication-manager>
<!--
配置认证提供者 -->
<security:authentication-provider>
<!--
配置用户服务 -->
<security:user-service>
<!-- 认证用户信息: 用户名、密码、角色或权限 -->
<security:user name="admin" password="123456"
authorities="ROLE_USER"/>
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>