Как я могу получить имя j_user на моем index.jsp после успешной аутентификации с помощью j_security_check? - PullRequest
5 голосов
/ 18 февраля 2011

Я использую j_security_check для login.jsp. Сервер GlassFish Server 3. Все работает, когда пользователь проходит аутентификацию, он открывает index.jsp. Моя проблема в том, что мне нужно получить имя j_user в моем index.jsp, но я не смог найти способ сделать это. Все решения, которые я нашел, на Java, и мне нужно что-то, что работает с моим JSP.

Есть идеи? Заранее большое спасибо!

1 Ответ

10 голосов
/ 18 февраля 2011

Соответствующий запрос в JSP EL доступен по PageContext#getRequest().Зарегистрированный пользователь доступен по номеру HttpServletRequest#getUserPrincipal().Имя пользователя, в свою очередь, доступно для Principal#getName().

Итак,

<p>Welcome, <c:out value="${pageContext.request.userPrincipal.name}" /></p>

должно сделать.

Использование <c:out> - этопуть не обязателен, но полезен для случая, когда имя пользователя может содержать специальные символы HTML, которые могут искажать вывод HTML, например <, >, " и т. д. (который является источником для атак XSS).<c:out> просто избегает их, так что они отображаются буквально, а не интерпретируются как часть разметки HTML.

...