最近,我一直在努力为我的Web应用程序实现安全性,在Glassfish v3上运行。通过设置如下基本身份验证,我成功地设法保护了一些资源:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>vcards-admin</realm-name>
</login-config>
现在我想知道如何在登录提示符上引入用户名来定义用户的实际数据。我认为可能有一个会话属性来获取那段数据,但我不知道它是哪一个。
我对会话属性有误吗?有没有其他方法可以访问该登录信息?
提前致谢。
答案 0 :(得分:28)
可通过HttpServletRequest#getUserPrincipal()
或其简写HttpServletRequest#getRemoteUser()
:
String name = request.getUserPrincipal().getName();
// Or
String name = request.getRemoteUser();
在JSP EL中等效:
${pageContext.request.userPrincipal.name}
<!-- or -->
${pageContext.request.remoteUser}