1

良い一日。Tomcat 7.0 を使用して、FORMS 認証で JAAS 認証を実装しました。localhost:8080/Guestbook/secure/123.html にアクセスしようとすると、認証ページにリダイレクトされます。認証すると、localhost:8080/Guestbook/secure/css/style.css にリダイレクトされ、HTTP ステータス 404 - /Guestbook/secure/css/style.css が表示されます。localhost:8080/Guestbook/secure/123.html リソースに再度アクセスしようとすると、認証ページにリダイレクトされることなく取得できます。私が理解しているように、私は承認されますが、最初の試行からリソースにリダイレクトされません。実際に何が起こり、そのような行動を防ぐために何ができるでしょうか? 私の web.xml には、次のコードがあります。

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Security test</web-resource-name>
            <url-pattern>/secure/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Admin</role-name>
        </auth-constraint>
    </security-constraint>

    <servlet-mapping>
        <servlet-name>FrontControllerServlet</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

    <login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/login.jsp</form-login-page>
            <form-error-page>/error.html</form-error-page>
        </form-login-config>
    </login-config>
4

2 に答える 2

1

ブラウザにアクセスしているときはlocalhost:8080/Guestbook/secure/123.html、キャッシュから html を提供していると思います。そして、html はlocalhost:8080/Guestbook/secure/css/style.css、サーバーに対して要求が行われる を使用しています。そして、あなたはその行動。

静的ページを保護する必要性がわかりません。ただし、ブラウザがhtmlをキャッシュせず、常にサーバーにリクエストを送信するように、ブラウザへの送信キャッシュヘッダーを本当に保護したい場合。

ブラウザで静的ページのキャッシュを無効にするには、次のヘッダーを送信します。

Pragma: no-cache
Cache-Control: no-cache,no-store
于 2012-06-02T16:22:01.377 に答える
0

Finally I've figured out the problem, I should have used ${pageContext.request.contextPath} expression in my href attribute of the link tag.

于 2012-06-04T08:21:14.480 に答える