是否可以修改OAuth身份验证中用于spring安全性的authentication字段?
我在我的spring boot应用程序中使用spring安全性。目前,我们可以选择使用用户名和密码生成令牌。现在我需要修改选项,比如我希望用户名作为电子邮件,密码作为手机号码。是否可以这样使用。是的,您可以选择使用自定义值。例如,检查下面的代码是否可以修改OAuth身份验证中用于spring安全性的authentication字段?,spring,spring-security,spring-boot,oauth-2.0,Spring,Spring Security,Spring Boot,Oauth 2.0,我在我的spring boot应用程序中使用spring安全性。目前,我们可以选择使用用户名和密码生成令牌。现在我需要修改选项,比如我希望用户名作为电子邮件,密码作为手机号码。是否可以这样使用。是的,您可以选择使用自定义值。例如,检查下面的代码 import org.springframework.beans.factory.annotation.Autowired; 导入org.springframework.security.core.authority.SimpleGrantedAuth
import org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.security.core.authority.SimpleGrantedAuthority;
导入org.springframework.security.core.userdetails.User;
导入org.springframework.security.core.userdetails.userdetails;
导入org.springframework.security.core.userdetails.userdetails服务;
导入org.springframework.security.core.userdetails.UsernameNotFoundException;
导入org.springframework.stereotype.Service;
进口sunbox.dao.IUserDAO;
导入java.util.ArrayList;
导入java.util.List;
@服务
公共类CustomUserDetailsService实现UserDetailsService{
@自动连线
私人IUserDAO IUserDAO;
@自动连线
公共CustomUserDetailsService(IUserDAO IUserDAO){
this.iuserDAO=iuserDAO;
}
@SuppressWarnings({“rawtypes”,“unchecked”})
@凌驾
public UserDetails loadUserByUsername(字符串s)引发UsernameNotFoundException{
sunbox.domain.User usr=iuserDAO.getUserByEmail;
如果(usr==null){
抛出新的UsernameNotFoundException(“找不到此用户名的用户详细信息:“+s”);
}
字符串username=usr.getEmail();
字符串密码=usr.getMobile();
字符串角色=usr.getUserType().getUserTypeName();
List authList=getAuthorities(角色);
用户=新用户(用户名、密码、身份验证列表);
返回用户;
}
@SuppressWarnings({“rawtypes”,“unchecked”})
私有列表GetAuthories(字符串角色){
List authList=new ArrayList();
添加(新的SimpleGrantedAuthority(“角色用户”);
如果(role!=null&&role.trim().length()>0){
if(role.equals(“admin”){
添加(新的SimpleGrantedAuthority(“角色管理”);
}
}
返回authList;
}
}
是的,您可以选择使用自定义值。例如,检查下面的代码
import org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.security.core.authority.SimpleGrantedAuthority;
导入org.springframework.security.core.userdetails.User;
导入org.springframework.security.core.userdetails.userdetails;
导入org.springframework.security.core.userdetails.userdetails服务;
导入org.springframework.security.core.userdetails.UsernameNotFoundException;
导入org.springframework.stereotype.Service;
进口sunbox.dao.IUserDAO;
导入java.util.ArrayList;
导入java.util.List;
@服务
公共类CustomUserDetailsService实现UserDetailsService{
@自动连线
私人IUserDAO IUserDAO;
@自动连线
公共CustomUserDetailsService(IUserDAO IUserDAO){
this.iuserDAO=iuserDAO;
}
@SuppressWarnings({“rawtypes”,“unchecked”})
@凌驾
public UserDetails loadUserByUsername(字符串s)引发UsernameNotFoundException{
sunbox.domain.User usr=iuserDAO.getUserByEmail;
如果(usr==null){
抛出新的UsernameNotFoundException(“找不到此用户名的用户详细信息:“+s”);
}
字符串username=usr.getEmail();
字符串密码=usr.getMobile();
字符串角色=usr.getUserType().getUserTypeName();
List authList=getAuthorities(角色);
用户=新用户(用户名、密码、身份验证列表);
返回用户;
}
@SuppressWarnings({“rawtypes”,“unchecked”})
私有列表GetAuthories(字符串角色){
List authList=new ArrayList();
添加(新的SimpleGrantedAuthority(“角色用户”);
如果(role!=null&&role.trim().length()>0){
if(role.equals(“admin”){
添加(新的SimpleGrantedAuthority(“角色管理”);
}
}
返回authList;
}
}