0

用户登录后如何区分用户,不能查看和编辑其他用户的数据?在日志记录过程中以某种方式记住用户 ID,然后进行 WHERE user_id=x 之类的查询,这是一种好方法吗?还是有其他聪明的方法?

基本上,我使用 spring 框架来记录程序,但我并不是这个框架的真正高级用户。用户登录后,他们必须将一些关于他们自己的信息插入数据库(即姓名、姓氏、电子邮件等)并填写他们的时间表。我真的不知道如何获取当前用户的 id 以让他们只编辑和插入自己的数据。

4

2 回答 2

1

是的,您应该将他们的用户 ID 存储在会话变量中(如果您不知道哪些会话也可以查找)

于 2013-06-09T16:50:54.913 回答
0

您始终可以使用 SecurityContextHolder 获取当前登录的用户。SecurityContextHolder 拥有当前线程的登录用户。

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && !authentication.getPrincipal().toString().equalsIgnoreCase("anonymous")) {
    User loggedInUser = (User) authentication.getPrincipal();
}
于 2013-06-10T08:48:07.617 回答