2

<login-config>+ <security-constraint>+<security-role>と の使用による JSF アプリケーションのセキュリティの実装<filter>は、2 つの異なる方法だと思います!? 彼らは ?

上記の最初の方法 ( <login-config>+ <security-constraint>+を使用<security-role>) でセキュリティの実装を試みましたが、保護された HTML コンポーネントと保護されていない HTML コンポーネントの両方を使用している保護された Web ページが、認証されていないユーザーにも保護されていないリソースとともに配信されることがわかりました。

保護された URL がその Web ページの一部を認証されていないユーザーに漏らさないように、URL を完全に保護する必要があります。どうすればいいですか?

また、セキュリティの実装は、セキュリティに対処するために自己管理された方法で使用<filter>されていますか? web.xmlリクエストごとにフィルタリング/キャッチするので、セキュリティをよりきめ細かくカスタマイズできると思いますか?

4

1 に答える 1

7

それは確かに2つの異なる方法です。これ<security-constraint>は、コンテナー管理認証 (CMS) の一部です。これFilterは、独自の認証の一部です。

CMS で特定のリソースへのアクセスを制限するには、次のように設定するだけです<url-pattern>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Application</web-resource-name>
        <url-pattern>/app/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>someRoleName</role-name>
    </auth-constraint>
</security-constraint>

上記の例では、一致するすべての URL に制約を課し、のみ/app/*を持つユーザーにアクセスを許可しますsomeRoleName

を使用して特定のリソースへのアクセスを制限するにはFilter、それも設定する必要があり<url-pattern>ます。

<filter>
    <filter-name>authenticationFilter</filter-name>
    <filter-class>com.example.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>authenticationFilter</filter-name>
    <url-pattern>/app/*</url-pattern>
</filter-mapping>

<init-param>おそらくフィルターのとして、他の場所で役割を定義する必要があるだけです。

于 2011-10-24T11:56:51.420 に答える