Spring 安全 - 身份验证失败 - 空白消息
Spring Security - Authentication Failure - Blank Message
我正在开发 spring-mvc 网络应用程序。
如果用户输入了错误的凭据,我想在我的登录页面上显示一条错误消息。
所以我尝试使用 spring 安全性来显示错误消息,但我无法显示任何消息。
login.jsp
对于登录表单,我已完成绑定:
<form method="post" action="<c:url value='/j_spring_security_check' />" id="loginForm">
.... login ui
</form>
用于显示错误:
<c:if test="${not empty param.error}">
<div>
<c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>
</div>
</c:if>
安全-context.xml
<form-login login-page="/login" default-target-url="/home" always-use-default-target="false" authentication-failure-url="/login?error=true" />
启用所有这些选项后,仍然无法显示有关提供的错误凭据的错误消息。
如果您需要任何其他信息,请告诉我。
PS:快速说明一下,其余的整个配置和应用程序都运行良好。用户可以登录。我已经扩展了 UserDetailsContextMapper,对于匿名用户我抛出了一个异常 UsernameNotFoundException
终于找到问题了。此消息存储在会话中和我保留的页面上:
<%@ page session="false"%>
我改成了:
<%@ page session="true"%>
它开始工作了。我得到的另一个好消息是,毕竟如果你想显示你的自定义错误消息,覆盖这些消息非常简单。有关详细信息,请参阅 this link.
我正在开发 spring-mvc 网络应用程序。
如果用户输入了错误的凭据,我想在我的登录页面上显示一条错误消息。
所以我尝试使用 spring 安全性来显示错误消息,但我无法显示任何消息。
login.jsp
对于登录表单,我已完成绑定:
<form method="post" action="<c:url value='/j_spring_security_check' />" id="loginForm">
.... login ui
</form>
用于显示错误:
<c:if test="${not empty param.error}">
<div>
<c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>
</div>
</c:if>
安全-context.xml
<form-login login-page="/login" default-target-url="/home" always-use-default-target="false" authentication-failure-url="/login?error=true" />
启用所有这些选项后,仍然无法显示有关提供的错误凭据的错误消息。
如果您需要任何其他信息,请告诉我。
PS:快速说明一下,其余的整个配置和应用程序都运行良好。用户可以登录。我已经扩展了 UserDetailsContextMapper,对于匿名用户我抛出了一个异常 UsernameNotFoundException
终于找到问题了。此消息存储在会话中和我保留的页面上:
<%@ page session="false"%>
我改成了:
<%@ page session="true"%>
它开始工作了。我得到的另一个好消息是,毕竟如果你想显示你的自定义错误消息,覆盖这些消息非常简单。有关详细信息,请参阅 this link.