5

(JSP +サーブレット)を使用してWebアプリケーションを開発しており、として使用Tomcat 7.0.33していweb containerます。

したがって、私の要件は、Tomcatの各アプリケーションが保護されるpasswordように保護されることmanager applicationです。

これまでのところ、私は次のことを行いました。

server.xml

<Realm className="org.apache.catalina.realm.MemoryRealm" />

tomcat-users.xml

<tomcat-users>
    <role rolename="tomcat"/>
    <role rolename="manager-gui"/>
    <role rolename="role1" />

    <user username="tomcat" password="tomcat" roles="role1,tomcat,manager-gui"/>
    <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

web.xml

<security-role>
    <role-name>role1</role-name>
</security-role>
<security-role>
    <role-name>tomcat</role-name>
</security-role>

<security-constraint>
<web-resource-collection>
    <web-resource-name>webappname</web-resource-name>
    <url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
    <role-name>role1</role-name>
    <role-name>tomcat</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>webappname</realm-name>
</login-config>

誰かがアプリケーションパスでアプリケーションを開くと正常に機能します(ユーザー名とパスワードを要求し、アプリケーションはrole1またはtomcat認証のいずれかを受け入れます)。

しかし、問題は、すべての役割を持つユーザーとしてログインしtomcat、サーバーにデプロイされているすべてのアプリケーションを一覧表示するマネージャー画面が表示されたときに、開こうとするとmywebapplication、ユーザー名とパスワードを再度要求されることです。

私の質問は、すべてrolesをユーザーに割り当てた場合tomcat、ログインしている場合にパスワードを要求されるのはなぜtomcatですか?これを回避する方法はありますか?

前もって感謝します。

4

1 に答える 1

3
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>webappname</realm-name>
</login-config>

基本認証のクレデンシャルは「セキュリティレルム」にまとめられています。すべてのアプリに異なるレルム名を付けると、ブラウザはそれぞれのプロンプトを表示します。それらすべてに同じ名前を使用してみてください(それが必要な場合)。

于 2013-03-25T07:26:08.593 に答える