我的Tomcat服务器目前正在运行pipe理员应用程序不受保护。 我们希望继续将其作为启动,停止和部署应用程序的主要手段。
我们的tomcat用户文件如下所示:
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <user username="tcadmin" password="P98ohnoes" roles="admin-gui,manager-gui" /> </tomcat-users>
经过多人testing,我们发现:
http://服务器:8080 /经理
加载他们的pipe理员界面没有密码的挑战。
我错过了什么?
我们在端口8080上的Windows Server 2012 R2上运行此操作,同时我们在端口80上运行IIS。
我已经尝试重新启动服务器,并且已经审查了我们的Dev和QA服务器,以确保server.xml和tomcat-users.xml和web.xml文件都是平等的,没有什么不同。 在每台服务器上,安全性都在起作用。 他们在端口80上运行Windows 7 64位,没有其他Web服务器并行运行。
更新
从Java Ranch的Tim Holloway,我了解到,我们应该关心server.xml文件中的GlobalNamingResourcesconfiguration。 我已经审查过,并确认它符合我们的工作服务器configuration。
<GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" 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.xml" /> </GlobalNamingResources>
和领域:
<Realm className="org.apache.catalina.realm.LockOutRealm"> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm>
我也遵循Tim的build议,检查Tomcat UserID的/conf/tomcat-users.xml的访问权限,我们作为服务在系统login下运行,它具有对该文件的完全控制权限。
然而,安全性似乎在重新启动后被忽略。
Java Ranch的Tim Holloway提供的解决scheme是简单地replacewebapps目录中的manager文件夹。 那里显然有一些没有logging的变化,不知道是什么造成了我们的问题。