#java #servlets #basic-authentication
#java #сервлеты #базовая аутентификация
Вопрос:
В последнее время я работал над внедрением безопасности для моего веб-приложения, работающего на Glassfish v3. Мне успешно удалось защитить некоторые ресурсы, настроив базовую аутентификацию следующим образом:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>vcards-admin</realm-name>
</login-config>
Теперь мне было интересно, как ввести имя пользователя в приглашении для входа, чтобы получить фактические данные пользователя. Я думал, что может быть атрибут сеанса для получения этой части данных, но я не знаю, какой именно.
Я ошибаюсь насчет атрибута сеанса? Есть ли какой-либо другой способ получить доступ к этой информации для входа?
Заранее спасибо.
Ответ №1:
Это доступно по HttpServletRequest#getUserPrincipal()
или его сокращенному обозначению HttpServletRequest#getRemoteUser()
:
String name = request.getUserPrincipal().getName();
// Or
String name = request.getRemoteUser();
Эквивалентно в JSP EL:
${pageContext.request.userPrincipal.name}
<!-- or -->
${pageContext.request.remoteUser}
Комментарии:
1. Можете ли вы объяснить, что такое UserPrincipal и почему мы его используем?