使用电子邮件和用户名作为Grails中Spring安全插件的登录

dpa*_*005 5 grails spring-security

我在我的Grails应用程序中使用spring安全插件,我希望注册的用户使用注册过程中提供的用户名或电子邮件地址登录应用程序.(就像fb一样)

我已经看过网络并关注Grails文档::: http://grails-plugins.github.io/grails-spring-security-core/docs/manual/guide/single.html#4.1%20Person%20Class

但找不到任何解决方案.

任何帮助将受到高度赞赏.

提前致谢

Fre*_*ose 8

从弹簧安全的角度来看,您应该做的是实现自己的org.springframework.security.core.userdetails.UserDetailsS​​ervice

public class MyUserServiceImpl implements UserDetailsService{

    @Autowired
    private AdminUserDao dao;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {

    ... Here comes your logic to get your the user based on email or userid ...

    }
}
Run Code Online (Sandbox Code Playgroud)

在你的spring配置中,你必须引用你的UserDetails类:

<authentication-manager>
    <authentication-provider user-service-ref="myUserServiceImpl" />
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)

心连心