2

Tomcat 7 を実行して、Tomcat サーバーで /conf/web.xml を構成して、いくつかの URL を基本認証で保護し、パブリック アクセス用に他の URL を提供しようとしています。

tomcat-users.xml には、次のロールとユーザーが含まれています。

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

次のセクションを Tomcats /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>

そのため、2 つの「security-constraint」要素があり、公開されている要素には「auth-constraint」が含まれていません。これは、実際には認証が必要ないことを意味するはずです。

URL http://localhost:8080を開くと

Tomcat は認証を要求します。これは問題ありませんが、URL http://localhost:8080/docs/を開くと、

Tomcat は認証も要求します。私の理解では、これは「安全でない」URL として構成されているため、パブリック アクセスですが、このようには動作しません。

構成で何が間違っていたのですか、それともこのシナリオはこのように機能しないはずですか?

ありがとう。ポール

4

2 に答える 2

0

<security-constraint>には<auth-constraint>ノードが必要です。たとえば、<auth-constraint/>は空です。

于 2012-03-02T01:58:26.853 に答える
0

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

于 2013-10-03T14:54:41.010 に答える