使用 j_security_check 成功进行身份验证后,如何在我的 index.jsp 上获取 j_username?

发布于 2024-10-17 19:32:18 字数 215 浏览 8 评论 0原文

我在 login.jsp 上使用 j_security_check。服务器是 GlassFish Server 3。一切正常,当用户通过身份验证后,它会打开 index.jsp。我的问题是我需要在我的index.jsp 中获取j_username,但我找不到执行此操作的方法。我找到的所有解决方案都是用 Java 编写的,我需要一些可以与我的 jsp 一起使用的东西。

有什么想法吗?预先非常感谢您!

I'm using j_security_check on a login.jsp. The server is GlassFish Server 3. It all works, when the user is authenticated it then opens index.jsp. My problem is I need to get j_username in my index.jsp, but I couldn't find a way of doing it. All solutions I found are in Java and I need something that works with my jsp.

Any ideas? Thank you very much in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一抹苦笑 2024-10-24 19:32:18

所涉及的请求位于 JSP EL 中,可通过 PageContext#getRequest()。登录用户可通过 HttpServletRequest#getUserPrincipal()。用户名又可通过 获得Principal#getName()

所以,

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

应该做。

顺便说一句,使用 是不必要的,但对于用户名可能包含特殊 HTML 字符的情况很有用,这些字符可能会导致 HTML 输出错误,例如 <>" 等等(这是 XSS 攻击的来源)。 只是转义它们,因此它们按字面意思显示,而不是被解释为 HTML 标记的一部分。

The involved request is in JSP EL available by PageContext#getRequest(). The logged-in user is available by HttpServletRequest#getUserPrincipal(). The username is in turn available by Principal#getName().

So,

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

should do.

Using <c:out> is by the way not necessary, but useful for the case that the username could contain special HTML characters which could malform the HTML output like <, >, " and so on (which is a source for XSS attacks). The <c:out> just escapes them so that they get displayed literally instead of being interpreted as part of HTML markup.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文