gpt4 book ai didi

spring - 为什么我没有收到 Spring Security 登录错误消息?

转载 作者:行者123 更新时间:2023-12-02 04:20:19 32 4
gpt4 key购买 nike

使用 Spring Security 3 以及 Struts 2 和 Tiles 2,我有一个登录页面,它会在应该出现的时候出现,并按预期执行登录——但是,当我输入错误的用户凭据时,我会返回到登录页面没有关于出了什么问题的信息。我检查了所有配置参数,但看不出问题出在哪里。

我的 Spring Security XML 配置如下:

 <http auto-config="true" use-expressions="true">
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/css/**" access="permitAll" />
<intercept-url pattern="/images/**" access="permitAll" />
<intercept-url pattern="/js/**" access="permitAll" />
<intercept-url pattern="/public/**" access="permitAll" />
<intercept-url pattern="/home/**" access="permitAll" />
<intercept-url pattern="/user/**" access="hasRole('AUTH_MANAGE_USERS')" />
<intercept-url pattern="/group/**" access="hasRole('AUTH_MANAGE_USERS')" />
<intercept-url pattern="/**" access="isAuthenticated()" />
<access-denied-handler error-page="/403.html"/>
<form-login login-page="/public/login.do" always-use-default-target="false"/>
<logout invalidate-session="true" logout-success-url="/public/home.do"/>
</http>

我的 Struts 操作如下所示:

<package name="public" namespace="/public" extends="secure">
<action name="login">
<result name="success" type="tiles">tiles.login.panel</result>
<result name="input" type="tiles">tiles.login.panel</result>
<result name="error">/WEB-INF/jsp/error.jsp</result>
</action>
<action name="logout">
<result name="success" type="redirect">/j_spring_security_logout</result>
</action>
</package>

login.jsp 页面(图 block 的一部分)会从 Spring Security 中查找异常...

<c:if test="${not empty param.login_error}">
<span class="actionError">
Your login attempt was not successful, try again.<br/><br/>
Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>.
</span>
</c:if>
<form id="loginForm" name="loginForm" action="/j_spring_security_check" method="post">
...
</form>

谁能告诉我我错过了什么?预先感谢您的任何/所有回复。

最佳答案

Spring Security 不会自动设置 param.login_error。您需要手动执行以下操作:

<form-login  
login-page="/public/login.do"
authentication-failure-url = "/public/login.do?login_error=1"
always-use-default-target="false"/>

关于spring - 为什么我没有收到 Spring Security 登录错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3884104/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com