0

私のプロジェクトでは、JSF Web アプリケーションでの直接 URL アクセスを制限したいと考えています。web.xmlでセキュリティ制約を構成するための提案を提供するWeb上で見つけましたが。

   <security-constraint>
    <display-name>Restrict raw XHTML Documents</display-name>
    <web-resource-collection>
        <web-resource-name>XHTML</web-resource-name>
        <url-pattern>/manage/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint />
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

そのため、への直接 URL アクセスを制限できます/manage/*.jsp/view/*.jspしかし、 、 など、制限するフォルダーがたくさんあります/others/*.jsp。また、エラーが発生したときにページを表示したいと考えています。

4

2 に答える 2

1

あなたはおそらく今までに解決策を考え出していたでしょうが、それに答えることを考えました.

制限を達成する方法は、すべての URL パターンを web-resource-collection の一部として持つことです。また、auth-constraint なしで相互に security-constraint を定義して、以下のように直接アクセスを許可することができます。

    <security-constraint>
        <display-name>Restrict raw XHTML Documents</display-name>
        <web-resource-collection>
            <web-resource-name>XHTML</web-resource-name>
            <url-pattern>/manage/*</url-pattern>
            <url-pattern>/view/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint />
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

<security-constraint>
    <display-name>Allow login pages</display-name>
    <web-resource-collection>
        <web-resource-name>Seam</web-resource-name>
        <url-pattern>*.seam</url-pattern>
        ...<!-- You can define all the url-patterns you want to allow direct access to -->

    </web-resource-collection>

</security-constraint>

空の auth-constraint を使用しています。これは、認証に関係なく、リストされているすべての URL パターンへの直接アクセスをブロックすることを意味します。403 エラーが発生し、エラー ページ タグを使用してそのページを定義できます。

<error-page>
    <error-code>403</error-code>
    <location>/path/to/error.jsp</location>
    </error-page>

それ以外の場合は、エラー ページ タグを使用してエラー jsps を定義できます。

<error-page>
<exception-type>anyexception class name</exception-type>
<location>/path/to/error.jsp</location>
</error-page>
于 2020-05-05T06:54:00.970 に答える
0

1 つの方法は、直接の URL アクセスをブロックする web-inf ディレクトリ内に jsp ファイルを移動することです。

于 2013-09-13T08:38:56.433 に答える