Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用3个字段而不是用户名和密码进行Spring安全认证_Java_Grails_Spring Security_Multi Tenant - Fatal编程技术网

Java 使用3个字段而不是用户名和密码进行Spring安全认证

Java 使用3个字段而不是用户名和密码进行Spring安全认证,java,grails,spring-security,multi-tenant,Java,Grails,Spring Security,Multi Tenant,我想使用用户名+密码+域(只是一个字符串)进行身份验证 它不是唯一的用户名,而是用户名+域的唯一组合 最好的方法是什么 我正在使用grails 2.3.7,请尝试以下内容(代码未经测试): @组件 公共类BasicAuthenticationProvider实现AuthenticationProvider{ @自动连线 私有用户服务注册服务; @凌驾 公共身份验证(身份验证)引发AuthenticationException{ 字符串email=authentication.getName();

我想使用
用户名+密码+域
(只是一个字符串)进行身份验证

它不是唯一的
用户名
,而是
用户名+域
的唯一组合

最好的方法是什么

我正在使用grails 2.3.7,请尝试以下内容(代码未经测试):

@组件
公共类BasicAuthenticationProvider实现AuthenticationProvider{
@自动连线
私有用户服务注册服务;
@凌驾
公共身份验证(身份验证)引发AuthenticationException{
字符串email=authentication.getName();
字符串密码=(字符串)身份验证。getCredentials();
字符串域=(字符串)身份验证。getDetails();
User=registerService.getUserByEmail(电子邮件);
if(user==null){
抛出新的BadCredentialsException(“未找到用户名”);
}
如果(!password.equals(user.getPassword())&&(!domain.equals(user.getDomain())){
抛出新的BadCredentialsException(“错误的密码”);
}
收集权限=新的HashSet();
GrantedAuthority GrantedAuthority=新的GrantedAuthority(){
@凌驾
公共字符串getAuthority(){
返回user.getAuthority();
}
};
权限。添加(授权权限);
返回新用户名PasswordAuthenticationToken(电子邮件、密码、权限);
}
@凌驾
公共布尔支持(类arg0){
返回true;
}
}

hey@user3025704检查下面的链接一次如何将其与grails集成?幸运的是,我不使用裸Spring Mvc,我只知道如何在Spring Mvc中使用它。