用户详细信息存储最佳实践

时间:2016-09-02 06:09:44

标签: java spring spring-security architecture credentials

可以延伸 org.springframework.security.core.userdetails.User 并创建自己的实现,以保存有关用户的更多信息,而不仅仅是用户名/密码/权限。所以,我们可以做类似

的事情
public class CustomUser extends User {
    private MyEntityUser user;
    // getters/setters/contructor
}

并且不要多次从数据库用户信息加载?

这合法吗?或者存在这个功能的另一个目标?

1 个答案:

答案 0 :(得分:3)

这是解决问题的好方法之一。从Java文档中,有三种适当的方法:

  

开发人员可以直接使用这个类[1],将它子类化为[2],或者编写它们   从头开始实施UserDetails [3]。

在我的一个项目中,我选择了第三个策略并使用了以下层次结构:

class AccountAuthDetails extends Account implements UserDetails { ... }
class Account { ... }

我当时没有org.springframework.security.core.userdetails.User的需要。