A solução, fornecida por Tim Holloway no Java Ranch, foi simplesmente substituir a pasta gerenciadora no diretório webapps. Aparentemente houve algumas alterações não documentadas feitas lá, não sei o que, o que estava causando o nosso problema.
Meu servidor tomcat está atualmente executando o aplicativo gerenciador desprotegido. Gostaríamos de continuar usando isso como nosso principal meio de iniciar, parar e implantar aplicativos.
Nosso arquivo de usuários do tomcat se parece com isto:
<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>
Tendo testado com várias pessoas aqui, descobrimos que:
carrega a interface do gerenciador para eles sem um desafio de senha.
O que estou perdendo?
Estamos executando isso no Windows Server 2012 R2 na porta 8080, enquanto o IIS é executado na porta 80.
Eu tentei reiniciar o servidor e revisei nossos servidores de Dev e QA para garantir que os arquivos server.xml e tomcat-users.xml e web.xml estejam todos em paridade e não encontrem nada diferente. Em cada um desses servidores, a segurança está funcionando. Eles estão sendo executados no Windows 7 de 64 bits na porta 80 e nenhum outro servidor da Web está sendo executado em paralelo.
Atualizar
De Tim Holloway no Java Ranch, aprendi que devemos nos preocupar com a configuração de GlobalNamingResources no arquivo server.xml. Eu revi isso e confirmei que ele corresponde às nossas configurações de servidor de trabalho.
<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>
E o reino:
<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>
Eu também segui a sugestão de Tim para verificar o acesso ao /conf/tomcat-users.xml para o ID do usuário do Tomcat, que executamos como um serviço no logon do sistema, que tem permissões de controle total para esse arquivo.
E, no entanto, a segurança parece ser ignorada após o reinício.
A solução, fornecida por Tim Holloway no Java Ranch, foi simplesmente substituir a pasta gerenciadora no diretório webapps. Aparentemente houve algumas alterações não documentadas feitas lá, não sei o que, o que estava causando o nosso problema.