在我当前的实现中,我有一个实现User
接口的org.springframework.security.core.userdetails.UserDetails
实体。
@Entity
@Table(name = "users")
public class User extends BaseEntity implements UserDetails {
private static final long serialVersionUID = 8884184875433252086L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String username;
private String password;
....
在OAuth2授权期间,我手动创建一个新的User
对象,填充其字段并存储在我的数据库中。
根据UserDetails
合同 - UserDetails.getUsername()
方法无法返回null,但我没有从社交网络中检索到可用作用户名的值。
在这种情况下,应该在User.getUsername()
方法中返回什么值?
可以退回这样的东西吗?
@Override
public String getUsername() {
return String.valueOf(id);
}
答案 0 :(得分:0)
如果您需要在拥有该名称的有效值之前保存此实体,那么我认为这是设计的问题。虽然说User.getUsername()
主要用于显示目的,但我怀疑实际值是多少,只要它可以与身份验证中的内容相匹配。