搭建基本环境
项目目录结构如下:
创建登录界面
在 webapp/ 下创建log.jsp,登陆表单代码如下:
<html>
<body>
<form action="j_spring_security_check" method="POST">
<input type="text" name="username" /> </br>
<input type="password" name="password" /> </br>
<input type="submit" value="submit" />
</form>
</body>
</html>
注意:
- 表单提交到
j_spring_security_check
。 -
post
方法提交表单。 - 用户名
name
使用username
。 - 用户密码
name
使用password
。
修改spring-security配置文件security.xml
在security.xml文件中增加以下内容:
<b:beans xmlns="http://www.springframework.org/schema/security"
xmlns:b="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.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
<http pattern="/login.jsp" security="none" />
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login
login-page="/login.jsp"
login-processing-url="/j_spring_security_check"
authentication-failure-url="/login.jsp"
default-target-url="/index.jsp" />
<csrf disabled="true" />
</http>
<user-service>
<user name="user" password="password" authorities="ROLE_USER" />
</user-service>
</b:beans>
注意:
<http pattern="/login.jsp" security="none" />
表示对于/login.jsp
不做权限过滤。<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
表示具有ROLE_USER
权限的用户才能访问全部路径。<form-login />
标签用于自定义登录界面。
1. login-page="/login.jsp" 表示使用login.jsp代替默认登陆界面。 2. login-processing-url="/j_spring_security_check" 使用spring-security 4.x版本必须添加该属性,表示登录表单提交路径。 3. authentication-failure-url="/login.jsp" 表示授权失败之后跳转到login.jsp界面。 4. default-target-url="/index.jsp" 表示授权成功之后默认跳转到index.jsp界面。
-
<user />
标签用于授权用户,属性name
标志用户名,password
标志用户密码,属性authorities
用来标志该用户所有的权限。
发布项目
项目运行结果如下图: