2011-10-24 31 views
1

は、二つの異なる方法がありますか!?彼らは ? 保護されたURL

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

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

そして、<filter>web.xmlでセキュリティを実装してセキュリティを実現していますか?私はあなたが毎回のフィルタリング/捕捉のたびに、より細かいセキュリティをカスタマイズできると信じています。&?

+1

セキュリティ制約の設定の例と、許可するURLが参考になります –

答えて

6

実際には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> 

上記の例では/app/*に一致するすべてのURLに制約を置くだけ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>として、他の場所での役割を定義する必要があります。

関連する問題