Как использовать хешированные пароли с базовой аутентификацией в tomcat6? - PullRequest
2 голосов
/ 10 июня 2011

Я хочу использовать хешированные пароли в tomcat-users.xml с аутентификацией BASIC. Я добавил digest = "SHA" в определение области. Часть UserDatabase определена так в $ TOMCAT_HOME / conf / server.xml:

<GlobalNamingResources>
<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>
...
<Engine>
...
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             digest="SHA"
             resourceName="UserDatabase" />  
...
</Engine>

Но после перезапуска tomcat по-прежнему обрабатывает все определенные в $ TOMCAT_HOME / conf / tomcat-users.xml пароли как простые текстовые пароли.

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<user username="guest" password="e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4" roles="role1" />
</tomcat-users>

т.е. Я могу войти с именем пользователя / паролем guest / e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4, но не с guest / secret, как должно быть.

Пожалуйста, укажите мне, что я делаю не так?

1 Ответ

0 голосов
/ 13 сентября 2017

Ваше решение должно работать до Tomcat 7, но начиная с Tomcat 8, вы должны указать секцию CredentialHandler внутри Realm, как показано ниже:

Tomcat 6 ... 7:

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             digest="sha"
             resourceName="UserDatabase" />  

Tomcat 8:

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase">
           <CredentialHandler
              className="org.apache.catalina.realm.MessageDigestCredentialHandler"     
              algorithm="sha" />
      </Realm>

Примечание: Для более безопасного хеширования, такого как PBKDF2WithHmacSHA512, см. этот ответ .

...