Spring Security和没有用户名和密码的用户

时间:2016-04-22 14:16:39

标签: java spring spring-security

我有两种类型的用户:"普通"和"社交"。 "普通"用户类型具有电子邮件和密码哈希,我可以将其与此类

的Spring Security UserDetails相关联
public static class CommonUserDetails implements UserDetails {

    private User user;

    CommonUserDetails(User user) {
        this.user = user;
    }

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return null;
    }

    @Override
    public String getPassword() {
        return user.getPasswordHash();
    }

    @Override
    public String getUsername() {
        return user.getEmail();
    }

    public User getUser() {
        return user;
    }

    ...

我对此类用户没有任何问题。但是&#34;社交&#34;用户类型没有任何电子邮件和密码,他们只有我的数据库中的id和已分配的社交网络的ID。现在我只能通过我的应用程序的ID识别用户,因此每个用户的主体都是id。

第一个问题:最好将标识符作为每个用户的主体吗?

第二个问题:我如何将身份验证类调整为&#34; social&#34;用户类型?如果委托人是id,那么凭证应该是什么?

0 个答案:

没有答案