2012-02-24 15 views
2

Tomcat 7を実行しているときに、Tomcatサーバーで/conf/web.xmlを設定して基本認証でいくつかのURLを保護し、パブリックアクセス用に他のURLを提供しようとしています。Tomcat 7 - 複数のセキュリティ制約が機能しない

のtomcat-users.xmlのは、次の役割とユーザー含まれています

<role rolename="test-ui"/> 
<user username="paul" password="password" roles="test-ui"/> 

を私は2つの「セキュリティがあるトムキャット/conf/web.xml

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>Public access</web-resource-name> 
    <url-pattern>/docs/*</url-pattern> 
    </web-resource-collection> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected access</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>test-ui</role-name> 
    </auth-constraint> 
</security-constraint> 

<security-role> 
    <description>Protected access</description> 
    <role-name>test-ui</role-name> 
</security-role> 

<login-config> 
    <auth-method>BASIC</auth-method> 
</login-config> 

に次のセクションを追加しました-constraint '要素では、公開されているものには' auth-constraint 'が含まれていません。実際には、認証は必要ありません。私はURLを開くと

http://localhost:8080

Tomcatは、認証を要求します。そうパブリックacccessを、それは次のように動作しません - 私は、URLを開いたとき これは結構です、しかし http://localhost:8080/docs/

これは「非セキュアな」URLとして設定されている認証のため、私の理解のためにTomcatも求められます。

構成に間違いがあったか、このシナリオはこのように動作しないと思われますか?

ありがとうございました。 ポール

+0

2番目の制約を上に移動しようとしましたか? – home

+0

ありがとうございますが、はい、私は試しました。効果は同じです。私は認証なしで/ docsにアクセスすることはできません。 –

答えて

0

あなたも、それが空である、例えば、<セキュリティ制約>に<のauth-制約>ノードを必要とします< auth-constraint/>

+1

いいえ、空のノードは禁止アクセスを意味します。セクションのは無制限アクセスを意味しません。少なくともこれはJava Servlet Specification Version 3.0に記述されています。 –

0

security-constraintが存在しない場合、コンテナはこれらのURLに対して認証されていないアクセスを許可する必要があります。 security-constraintはオプションです。

+0

サポート情報をいくつか教えてもらえますか? –

関連する問題