Переопределить базовую аутентификацию Tomcat
Я пытаюсь написать веб-программу установки для моего веб-приложения (главным образом, настройку базы данных). Но поскольку я использую DIGEST-аутентификацию для всех сервлетов, у меня возникла проблема. Я хочу иметь возможность попросить пользователя ввести свой пароль MySQL, но он не может, потому что он не может войти. Поскольку пользователи сохраняются в базе данных, которой на тот момент не существует, войти в систему невозможно.
<security-constraint>
<web-resource-collection>
<web-resource-name>Wildcard means whole app requires authentication</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>crm_user</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>tomcat_realm</realm-name>
</login-config>
Могу ли я переопределить конфигурацию входа для одного сервлета, чтобы пользователю не приходилось вводить пароль?
1 ответ
Обратите внимание, что вы указываете <url-pattern>/*</url-pattern>
, Вы можете использовать этот шаблон, чтобы применить ограничение безопасности только к тем URL-адресам, для которых требуется аутентификация. На любой URL, не соответствующий этому шаблону, не будет применено это ограничение безопасности.
Вы также можете добавить второе ограничение безопасности с URL-шаблоном, который соответствует URL-адресам, которые вы не хотите защищать. В этом случае полностью исключите тег auth-constraint, чтобы каждый мог получить доступ к этим URL-адресам. Посмотрите на этот другой вопрос для примера.