Назад | Перейти на главную страницу

Tomcat 8.0 - файл tomcat-users игнорируется, не удается ограничить доступ к приложению-менеджеру

На моем сервере tomcat в настоящее время запущено приложение-менеджер без защиты. Мы хотели бы и дальше использовать это в качестве основного средства запуска, остановки и развертывания приложений.

Наш файл tomcat-users выглядит так:

<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>

Протестировав здесь несколько человек, мы обнаружили, что:

http: // имя сервера: 8080 / менеджер

загружает для них интерфейс менеджера без запроса пароля.

Что мне не хватает?

Мы запускаем это на Windows Server 2012 R2 на порту 8080, в то время как у нас IIS работает на порту 80.

Я попытался перезапустить сервер и проверил наши серверы Dev и QA, чтобы убедиться, что файлы server.xml и tomcat-users.xml и web.xml находятся в паритете и не нашел ничего другого. На каждом из этих серверов работает безопасность. Они работают на 64-разрядной версии Windows 7 на порту 80, и другие веб-серверы не работают параллельно.

Обновить

От Тима Холлоуэя из Java Ranch я узнал, что нам следует позаботиться о нашей конфигурации GlobalNamingResources в файле server.xml. Я проверил это и подтвердил, что он соответствует нашим рабочим конфигурациям сервера.

<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>

Я также последовал предложению Тима проверить доступ к /conf/tomcat-users.xml для идентификатора пользователя Tomcat, который мы запускаем как службу при входе в систему, у которого есть разрешения на полный контроль для этого файла.

И все же после перезапуска кажется, что безопасность игнорируется.

Решение, предложенное Тимом Холлоуэем из Java Ranch, заключалось в простой замене папки менеджера в каталоге webapps. По-видимому, там были внесены некоторые недокументированные изменения, но не знаю, что стало причиной нашей проблемы.