我正在使用Spring Security,我想知道如何更改默认登录表单
我发现我需要指向新表格的位置。我想保留具有所有登录异常显示的现有默认表单的现有功能。所以我必须首先知道如何重制它。
在我的研究中,我碰到了它
http://www.codercorp.com/blog/spring/security-spring/spring-security-login- logout-form.html
谢谢他的密码
<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core_rt' %> <%@ page import="org.springframework.security.ui.AbstractProcessingFilter" %> <%@ page import="org.springframework.security.ui.webapp.AuthenticationProcessingFilter" %> <%@ page import="org.springframework.security.AuthenticationException" %> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <c:if test="${not empty param.login_error}"> <font color="red"> Your login attempt was not successful, try again.<br/><br/> Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>. </font> </c:if> <form name="f" action="<c:url value='j_spring_security_check'/>" method="POST"> <table> <tr><td>User:</td><td><input type='text' name='j_username' value='<c:if test="${not empty param.login_error}"><c:out value="${SPRING_SECURITY_LAST_USERNAME}"/></c:if>'/></td></tr> <tr><td>Password:</td><td><input type='password' name='j_password'></td></tr> <tr><td><input type="checkbox" name="_spring_security_remember_me"></td><td>Don't ask for my password for two weeks</td></tr> <tr><td colspan='2'><input name="submit" type="submit"></td></tr> <tr><td colspan='2'><input name="reset" type="reset"></td></tr> </table> </form> </body> </html>
但是该代码对于Spring Security 3似乎不起作用。有些库已过时,我将它们一一替换。我将它们更改为以下
<%@ page import="org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter" %> <%@ page import="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter" %> <%@ page import="org.springframework.security.core.AuthenticationException" %>
但仍然拒绝报告登录错误。我还应该尝试什么?
当您使用自定义登录页面时,Spring Security不会自动指定由于登录错误而显示您的登录页面。您应该手动执行此操作,通常是通过向中添加一个参数authentication-failure- url,您的代码需要一个名为的参数login_error:
authentication-failure- url
login_error
<form-login login-page="/login.htm" authentication-failure-url = "/login.htm?login_error=1" />