0

私は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>
...

これは、サーブレットでチェックしようとしたものです。

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の読み取りエラーを結論付けることができます 。


エラーメッセージを読むにはどうすればよいですか?

4

2 に答える 2

1

まず第一に、あなたは Facelets を使用していません。JSPを使用しています。これら 2 つはどちらも Sun の独立したビュー テクノロジであり、Facelets は多かれ少なかれ強化された JSP と見なされます。そのため、このトピックは誤って Facelets でタグ付けされています。

次に、1998 年の HTML 4.01 以降、HTML の <font> タグは廃止されました。CSS を使用する必要があります。

あなたの問題に戻ります: 私は Spring をやっていないので、詳しくは言えませんが、セッション スコープの属性を確認しましたか? キー「SPRING_SECURITY_LAST_EXCEPTION.message」をすばやくグーグルすると、それがセッションスコープに保存されていることがわかります。

于 2009-11-02T11:12:57.187 に答える
0

できます:

String keyToSearch = AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY;
Object value = request.getSession().getAttribute(keyToSearch);

もう一度ありがとう

于 2009-11-02T12:07:37.410 に答える