0

外部認証モジュールを介してアクセスするGWT上に構築された企業Webアプリがあります。私の問題は:

  • ログインページを使用してアプリケーションにログインします。
  • GWTアプリケーションをロードするTomcatサーバーに(リバースプロキシルールを使用して)転送されます。
  • アプリを操作します。
  • アプリケーションからログアウトします。
  • 再度ログインしようとすると、ログインページが表示されません。

ログインページのURLをもう一度入力すると、ログインページにアクセスできないキャッシュデータの読み込みがブラウザで開始されます。ログインページにアクセスするには、リロードを押す必要があります。どうすればいいの?ブラウザにキャッシュを使用しないように指示するF5の何が特別なのですか?

プロキシが私のリクエストのいずれにもヒットしないことを知っています。つまり、ブラウザが実行しているのは、キャッシュされた要素をロードすることだけです。

誰かが手がかりを持っていますか?

4

2 に答える 2

1

私はあなたの問題を明確に理解していませんでしたが、似たような問題があったと思います。お役に立てば幸いです。

GwtPage.html とすべての GWT を web.xml で保護しました。

初めてhttp://example.com/GwtPage.htmlにアクセスしたとき、コンテナのセキュリティによって login.jsp に送られました。ログインが完了すると、GwtPage.html に送信されたので、すべて問題ありませんでした。

しかし、2 回目は GwtPage.html がブラウザによってキャッシュされ、コンテナから login.jsp が送信されませんでした。そのため、次のことを行いました: 1 行だけで index.jsp を作成しました。

<%
    response.sendRedirect("GwtPage.html");
%>

そして、それを保護されたリソースのリストに追加しました。

ブラウザーはそれをキャッシュしないため、コンテナーは常にログイン ページを送信します。

そして 2 番目の利点は、GwtPage.html がブラウザーによってキャッシュされたままになることです。

私のweb.xml:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- Security -->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Index Page</web-resource-name>
        <url-pattern>/index.jsp</url-pattern>
    </web-resource-collection>    
    <web-resource-collection>
        <web-resource-name>Main Page</web-resource-name>
        <url-pattern>/GwtPage.html</url-pattern>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Gwt entrails</web-resource-name>
        <url-pattern>/Gwt/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>VIEWER</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>myrealm</realm-name>
    <form-login-config>
        <form-login-page>/LoginForm.jsp</form-login-page>
        <form-error-page>/LoginError.jsp</form-error-page>
    </form-login-config>
</login-config>
于 2012-06-17T15:28:12.453 に答える
1

私も同じ問題を抱えていました。ログアウト後、GWT モジュールが開始されていません。

<a id="logout" href="${pageContext.request.contextPath}/j_spring_security_logout">Logout</a>

解決策は非常に簡単です。ログインページを開く前に自動的に更新する必要があります

spring-security.xml

<security:logout logout-success-url="/logout.html"/>

logout.html

<head lang="en">
  <meta http-equiv="REFRESH" content="0;  url=login.html">
</head>
于 2014-07-11T22:05:25.913 に答える