我有两个虚拟主机,每个主机都部署了管理器应用程序。 还在 Tomcat 8.0\conf\tomcat-users.xml 中添加了一个具有 manager-gui 角色的用户 此用户能够访问两个主机的管理器应用程序。有什么方法可以将管理员用户限制为特定主机?
最佳答案
您可以在 [tomcat_home]/conf/Catalina/[hostname]/manager.xml
Realm
<Context docBase="${catalina.home}/webapps/manager">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="userDatabase_2"/>
<Context>
然后在 server.xml
中添加一个额外的资源,指向每个上下文的替代 tomcat-users.xml
文件:
<Resource name="userDatabase_2" auth="Container"
type="org.apache.catalina.UserDatabase"
description="another user database"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="/conf/tomcat-users-2.xml" />
我必须承认,我还没有对此进行彻底的测试。即使它可能有效,也不建议在生产系统上使用 UserDatabaseRealm。
例如,如果您更喜欢使用 DataSourceRealm
基于表单的身份验证,您可以更改 [tomcat_home]/webapps/host 中的
使用基于 FORM 的身份验证,并在 login-config
-manager/WEB-INF/web.xmlContext
元素中包含数据源 Resource
。 https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html
关于特定虚拟主机的 Tomcat 8 管理员用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33991181/