我正在开展一个项目,我必须在JSP中添加一些代码。 此JSP的代码如下(与Spring Security相关)...
<%@ 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" %>
....
<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>
....
<c:if test="${not empty param.login_error}"><c:out value="${SPRING_SECURITY_LAST_USERNAME}"/></c:if>
...
这是我试图在我的servlet中检查的内容:
enumr = request.getAttributeNames();
while(enumr.hasMoreElements())
{
String element = enumr.nextElement()+"";
out.print("<h3>Read an element:");
out.print(element+" » ");
out.print(request.getAttribute(element));
out.print("</h3>");
}
和相应的输出:
Read an element:__spring_security_session_fixation_filter_applied » true
Read an element:__spring_security_filterSecurityInterceptor_filterApplied » true
Read an element:hibernateFilter.FILTERED » true
Read an element:__spring_security_session_integration_filter_applied » true
Read an element:requestContextFilter.FILTERED » true
一个有根据的猜测是,我可以在阅读时得出错误, 的 _spring_security_filterSecurityInterceptor_filterApplied 下, 描述发生了错误。
如何阅读错误消息?
答案 0 :(得分:1)
首先:你没有使用Facelets。您正在使用JSP。这两个都是来自Sun的独立视图技术,其中Facelets在类固醇上被视为JSP。因此,使用Facelets错误地标记了此主题。
其次:HTML&lt; font&gt;自1998年HTML 4.01以来,不推荐使用tag。您应该使用CSS。
回到你的问题:我不做Spring,所以我不能深入细节,但是你有没有检查过会议范围的属性?快速搜索关键字“SPRING_SECURITY_LAST_EXCEPTION.message”了解到它存储在会话范围内。
答案 1 :(得分:0)
有效:
String keyToSearch = AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY;
Object value = request.getSession().getAttribute(keyToSearch);
再次感谢BalusC