1

ログアウトした後、ユーザーが正しい URL を知っていて入力したとしても、ページにアクセスしないようにします。ログイン時に表示されるページの URL を入力すると、ホームページにリダイレクトされます。

header.jspファイル内のコードを使用しました

<core:if test="${userName == null}">
    <script>
         parent.location.href='logout.html'
    </script>
</core:if>

しかし、ヘッダーは about us ページと登録ページの両方に含まれているため、上記のコードを含めずに、これら 2 つのファイル用に別のヘッダーを作成する必要がありました。より良い解決策はありますか?

説明

  1. ログインして URL のページに移動します。ページの URL をコピーします
  2. ログアウト
  3. 同じブラウザ ウィンドウで、URL を貼り付けます

ログインの詳細を求めなくても、サイトは正常に動作しています。

4

1 に答える 1

3

あなたが何を求めているのかよくわかりませんが、ここで
説明します。たとえば、春のセキュリティによっていくつかのプライベートURLを保護していると仮定します。

<security:http use-expressions="true">
    <!-- ...more configuration stuff -->
    <security:intercept-url pattern="/private/*" access="isFullyAuthenticated()" />
    <!-- ...more configuration stuff -->
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="/yourUrlAfterLogout.html"/>
</security:http>

その後、ユーザーがログアウトすると、プライベートURLにアクセスできなくなります。
更新:Spring Securityの終わりの部分)

ユーザーがナビゲーターの戻るボタンを押すか、プライベートURLをコピーするときに、これらの保護されたページにアクセスできないようにする場合は、次のようにWebContentInterceptorを構成できます。

<mvc:interceptors>
    <bean id="webContentInterceptor"
        class="org.springframework.web.servlet.mvc.WebContentInterceptor">
        <property name="cacheSeconds" value="-1" />
        <property name="useExpiresHeader" value="true" />
        <property name="useCacheControlHeader" value="true" />
        <property name="useCacheControlNoStore" value="true" />
    </bean>
</mvc:interceptors>
于 2013-03-14T13:56:19.753 に答える