Spring Security UserDetails和用户名

时间:2016-01-21 10:09:37

标签: spring spring-security spring-data spring-security-oauth2

在我当前的实现中,我有一个实现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);
}

1 个答案:

答案 0 :(得分:0)

如果您需要在拥有该名称的有效值之前保存此实体,那么我认为这是设计的问题。虽然说User.getUsername()主要用于显示目的,但我怀疑实际值是多少,只要它可以与身份验证中的内容相匹配。

相关问题