Какая разница между:
<auth-constraint><role-name>tomcat</role-name></auth-constraint>
а также:
<security-role><role-name>tomcat</role-name></security-role>
в объявлении ограничения безопасности?
Например, если я определяю BASIC-аутентификацию, как показано ниже, что я должен использовать?
<login-config><auth-method>BASIC</auth-method></login-config>
Основное различие заключается в механизме аутентификации, который адресован auth-методом. Аутентификация - это средство для подтверждения приложения: "Вы действительно такой, кем вы себя называете?" - Механизмы аутентификации могут быть разных типов, но есть некоторые из них, которые поддерживаются из коробки стандартным контейнером сервлетов, - то, которое вы указали, является BASIC - это то, что побуждает браузер запрашивать диалоговое окно для входа в систему - это в идеале не должны использоваться в сценариях prod, поскольку он передает ваши учетные данные в виде обычного текста на сервер, и он не настраивается в любом браузере, который я знаю. Обычно в сценариях prod используется FORM наряду с настройкой SSL на сервере или другом уровне инфраструктуры. FORM очень настраиваема и наиболее популярна, когда используется функция автоматической проверки подлинности веб-контейнера сервлета.
Имя роли - это абстракция, которая в конечном итоге будет использоваться кодом приложения для выполнения авторизации. "Хорошо, так вы и являетесь тем, кем вы говорите, но разрешено ли вам доступ к этой странице, кнопке или веб-приложению?" - Как приложение обрабатывает это внутренне, здесь не спрашивают, но существуют декларативные (основанные на Аннотации) API-интерфейсы Servlet и связанные с сервером сопоставления. Вот как это сделать программно. Как получить роли пользователя в JSP/Servlet