Как получить атрибуты входа из сервлета / jsp

#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 и почему мы его используем?