可以延伸
org.springframework.security.core.userdetails.User
并创建自己的实现,以保存有关用户的更多信息,而不仅仅是用户名/密码/权限。所以,我们可以做类似
public class CustomUser extends User {
private MyEntityUser user;
// getters/setters/contructor
}
并且不要多次从数据库用户信息加载?
这合法吗?或者存在这个功能的另一个目标?
答案 0 :(得分:3)
这是解决问题的好方法之一。从Java文档中,有三种适当的方法:
开发人员可以直接使用这个类[1],将它子类化为[2],或者编写它们 从头开始实施
UserDetails
[3]。
在我的一个项目中,我选择了第三个策略并使用了以下层次结构:
class AccountAuthDetails extends Account implements UserDetails { ... }
class Account { ... }
我当时没有org.springframework.security.core.userdetails.User
的需要。