0

これに関してインターネット上で何も見つけることができなかったので、ここの専門家が私の質問に答えてくれることを願っています.

テストサーバーにTomcat Web Application Managerをセットアップし、次のようにいくつかのロール/ユーザーを作成しましたtomcat-users.xml:

<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>
<user username="user1" password="password" roles="manager"/>

adminは、WebApp Manager に対する完全な権限を持っていると想定されていますが、user1(およびおそらく後続のユーザー) は、WAR ファイルをアップロード/デプロイする権限を付与されたユーザー用です。

現在、彼らは同じ役割を持っているため、明らかにログイン時に同じ UI がuser1表示されますが、展開/アップロード オプションのみを表示したい - 基本的に WebApp Manager へのアクセスが制限されています。

このようなことを達成することは可能ですか?はいの場合、どのように?「いいえ」の場合、許容できる妥協点は何ですか?

4

1 に答える 1

1

これを見つけることができなかったとしても、それほど難しくはありません。これは、Tomcat ユーザー ガイドの「マネージャー」セクションにあります。

http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Configuring_Manager_Application_Access

標準のユーザー アクセス ロールでは、実行しようとしていることができません。幸いなことに、あなたの発明を妨げるものは何もありません。

と に異なるロールを設定するとしdeployますundeploy。次のように追加するだけtomcat-users.xmlです:

<role rolename="deploy"/>
<role rolename="undeploy"/>

ここで、managerwebapp の web.xml を変更し、auth-constraintsこれらの新しいロールが特定の特定の機能にアクセスできるようにするいくつかを追加します。

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Manual Deployment</web-resource-name>
    <url-pattern>/html/deploy</url-pattern>
  </web-resource-collection>
  <auth-constraint>
     <role-name>manager-gui</role-name>
     <role-name>deploy</role-name>
  </auth-constraint>
</security-constraint>

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Manual Deployment</web-resource-name>
    <url-pattern>/html/undeploy</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>manager-gui</role-name>
    <role-name>undeploy</role-name>
  </auth-constraint>
</security-constraint>

上記で設定した機能にアクセスするために、適切なロールを持つユーザー (たとえば、「デプロイ」ロールのみを持つユーザー) が GUI 自体にアクセスできるように、既存の<web-resource-collection>forも変更する必要があることに注意してください。/html/*

于 2012-06-07T18:23:19.413 に答える