上次我们讲到,spring security会为我们创建一个默认的登录界面,但是一个全英文,普通化的登录界面很明显不适合所有的应用场景,所有就有必要来自定义登录界面,恰巧spring security也给我们提供了配置自定义登录界面的功能。
首先,需要加上的就是配置让一些静态资源,登录页,获取验证码啥的这些不参与spring security的拦截范畴。
<!-- 配置静态资源和登录页不需要拦截 -->
<http pattern="/**/.txt" security="none"/>
<http pattern="/login.jsp" security="none"/>
然后再加上自定义登录界面的配置
<http>
<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/>
<intercept-url pattern="/**" access="ROLE_USER"/>
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp" default-target-url="/index.jsp"/>
<logout />
</http>
其中login-page是指定登录界面,注意登录界面一定要在上面配置不参与spring security的拦截,不然会报循环错误.
authentication-failure-url指的是认证失败跳转的页面, default-target-url指的是登陆成功之后跳转的页面.
然后再写一个自定义的登录界面,注意以下几点
提交地址: j_spring_security_check
提交方法:POST
用户名:j_username
密码: j_password
我自己写了一个是这样的
Spring security配置我自己的登录界面
<form action="j_spring_security_check" method="POST">
<input type="text" name="j_username"/>
<input type="text" name="j_password"/>
<input type="submit" value="登录"/>
</form>
然后就可以随便测试了,这样一个自定义的登录界面就完成了。