改写若依登录
LoginUser 类: 继承 UserDetails , 建立属性:private String type;private CCompanyUserDto cCompanyUserDto;// 重写 LoginUser 函数@Overridepublic String getPassword() {if (user != null) {return user.getPassword();} el
·
- LoginUser 类: 继承 UserDetails , 建立属性:
private String type;
private CCompanyUserDto cCompanyUserDto;
// 重写 LoginUser 函数
@Override
public String getPassword() {
if (user != null) {
return user.getPassword();
} else if (cCompanyUserDto != null) {
return cCompanyUserDto.getPassword();
}
return null;
}
@Override
public String getUsername() {
if (user != null) {
return user.getUserName();
} else if (cCompanyUserDto != null) {
return cCompanyUserDto.getUsername();
}
return null;
}
2.LoginBody 加字段
//类型:cp or company
private String type;
3.SysLoginService.login(加String type参数)
new UsernamePasswordAuthenticationToken(username + "@@@" + type, password)
4.SysUserMapper 类与 xml写:
public CompAdminDto selectCompAdmin(String username);
<!-- 其实不符合规范,为了统一登录代码写这里 -->
<select id="selectCompAdmin" parameterType="String" resultType="com.ruoyi.common.core.domain.entity.CompAdminDto">
SELECT * from comp_admin t where t.USERNAME= #{username}
</select>
5.UserDetailsServiceImpl.loadUserByUsername 修改:
String[] unames = username.split("@@@");
username = unames[0];
String type = unames[1];
// 企业登录
if ("company".equals(type)) {
CompAdminDto adminDto = userMapper.selectCompAdmin(username);
if (adminDto != null) {
return createLoginUser(adminDto);
}
throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
}
UserDetailsServiceImpl新建函数:
public UserDetails createLoginUser(CompAdminDto adminDto) {
LoginUser loginUser = new LoginUser();
loginUser.setType("company");
loginUser.setAdminDto(adminDto);
return loginUser;
}
更多推荐
已为社区贡献6条内容
所有评论(0)