在tomcat管理器中,如何限制用户只能部署/取消部署特定应用程序?

时间:2017-02-15 10:11:55

标签: java tomcat deployment authorization

任何人都可以告诉我是否可以以某种方式为默认应用程序管理器的tomcat用户定义角色,他只能部署特定的应用程序?情况是开发人员只能通过控制台进行部署,因为服务器本身是由第三方管理的。处理它需要钱(字面​​意思)。安全性要求是他们应该能够部署和取消部署他们正在处理的应用程序。多个tomcat实例的概念被拒绝了。是否有任何第三方应用程序可以做到这一点?欢迎任何想法。

2 个答案:

答案 0 :(得分:-1)

Tomcat内置的Manager应用程序不支持此功能。假设您信任您的员工,我建议采用不同的方法。使用社会控制而不是技术控制。

如果有人做了什么,他们不应该通过访问日志告诉你是谁做的,然后你就可以采取适当的行动了。

答案 1 :(得分:-1)

试试这个:

首先,在[tomcat_home]/conf内创建一个新的用户xml数据库文件,让我们称之为tomcat-users-2.xml

将以下条目添加到tomcat-users-2.xml文件中:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <user username="[$yourUsername]" password="[$yourPassword]" roles="tomcat,manager-gui"/>
</tomcat-users>

请注意,您可以在user

中添加多个<tomcat-users>代码

然后在[tomcat_home]/conf/server.xml文件中,找到<GlobalNamingResources>标记并添加(在其中):

<Resource name="UserDatabase2" auth="Container"
          type="org.apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users-2.xml" />

将以下代码放在要限制用户的应用的<Host ...></Host>标记内:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase2"/>

最后,您必须重新启动Tomcat才能使更改生效。

有关详细信息,请查看this link