Как получить имя пользователя, пароль и роли из базы данных вместо того, чтобы извлекать их из tomcat-user.xml при использовании безопасности, управляемой контейнером - PullRequest
3 голосов
/ 12 декабря 2008

У меня есть веб-приложение, которое я развернул в Tomcat. Я хочу защитить все страницы под URL-адресом администрация / *.

Я установил управляемую контейнером защиту, введя следующий фрагмент в файле web.xml:

<security-role>
    <role-name>administrator</role-name>
</security-role>
<login-config>
    <auth-method>BASIC</auth-method>                
</login-config>  
<security-constraint>
    <web-resource-collection>
        <web-resource-name>AdministrationPanel</web-resource-name>          
    <url-pattern>/administration/*</url-pattern>            
    <http-method>GET</http-method>
    <http-method>POST</http-method>         
    </web-resource-collection>
    <auth-constraint>
        <role-name>administrator</role-name>
    <role-name>member</role-name>
    </auth-constraint>
</security-constraint>

и в $ CATALINA_HOME / conf / tomcat-users.xml у меня есть

<user username="userA" password="userA" roles="administrator"/>

Все работает нормально. Я получаю поле для входа и могу аутентифицировать себя как userA.

Однако я хотел бы иметь возможность хранить новых пользователей напрямую с помощью веб-приложения, изменять пароли пользователей и т. Д.

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

Ответы [ 2 ]

5 голосов
/ 12 декабря 2008

Да, можно .

1 голос
/ 15 декабря 2008

Или для текущей версии Tomcat 6 Realm Howto

...