1
我想将用户的ID存储在会话变量中,以便在整个应用程序中使用。我没有看到我会如何使用默认安全功能来做到这一点?它认证自己,我不知道(如果)有一个回调函数或什么?我们可以用做我们的看家在Java servlet中使用j_security_check进行登录后,如何设置会话变量(用户ID为int)?
任何帮助深表赞赏
我想将用户的ID存储在会话变量中,以便在整个应用程序中使用。我没有看到我会如何使用默认安全功能来做到这一点?它认证自己,我不知道(如果)有一个回调函数或什么?我们可以用做我们的看家在Java servlet中使用j_security_check进行登录后,如何设置会话变量(用户ID为int)?
任何帮助深表赞赏
您可以使用此,如果用户是通过容器记录在检查管理安全Filter
(即HttpServletRequest#getUserPrincipal()
不返回null
),然后设置会话变量(如果不存在)。
基本上是:
if (request.getUserPrincipal() != null && session.getAttribute("user") == null) {
session.setAttribute("userId", userId);
}
但是,也许你并不需要做的是在所有的,因为它证明了你不知道有关HttpServletRequest#getUserPrincipal()
。它可能已经提供了你需要的信息。登录用户名(可能与您谈论的用户ID相同)可通过Principal#getName()
获取。
是的,我所指的书没有涉及到。我的大部分sql查询都有带用户ID的外键,这就是为什么我想要这样做。我明白了,设置用户标识的过滤器。谢谢,我会研究它 – JSPer 2010-11-23 06:41:38