gpt4 book ai didi

Tomcat Web 应用程序管理器 - 是否可以限制每个用户角色可以看到的内容?

转载 作者:行者123 更新时间:2023-11-28 23:05:10 25 4
gpt4 key购买 nike

网上查不到这方面的资料,希望有高手帮忙解答一下。

我已经在我的测试服务器上设置了 Tomcat Web 应用程序管理器,在 tomcat-users.xml 中创建了一些角色/用户,如下所示:

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

admin 应该拥有 WebApp 管理器的全部权限,而 user1(可能还有后续用户)适用于已被授予上传/部署他们的权限的用户WAR 文件。

现在他们有相同的角色,所以很明显他们在登录时看到相同的用户界面,但我希望 user1 只看到部署/上传选项 - 基本上限制对 WebApp 管理器的访问。

有没有可能实现这样的目标?如果是,如何?如果不是,什么是可以接受的妥协?

最佳答案

如果你找不到这个,你看起来并没有很努力。它位于 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"/>

现在,修改 manager webapp 的 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>

请注意,您还必须修改现有的 <web-resource-collection>对于 /html/*以便具有任何适当角色的用户(例如,只有“部署”角色的用户)可以访问 GUI 本身,以便获得上面配置的那些功能。

关于Tomcat Web 应用程序管理器 - 是否可以限制每个用户角色可以看到的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10909471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com