修改统一身份认证
This commit is contained in:
@@ -98,6 +98,11 @@ public class AccessUserController extends LideeBaseController<AccessUserParam, A
|
|||||||
return responseSuccessWithData(accessUserService.login(dto));
|
return responseSuccessWithData(accessUserService.login(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping({"/logincas"})
|
||||||
|
public ResponseBean logincas(@RequestBody @Validated LideeUserDto dto) {
|
||||||
|
return responseSuccessWithData(accessUserService.logincas(dto));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改自己的密码
|
* 修改自己的密码
|
||||||
* @param dto
|
* @param dto
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ public interface AccessUserService extends LideeBaseService<AccessUserParam, Acc
|
|||||||
*/
|
*/
|
||||||
LideeUserDto login(LideeUserDto lideeUserDto);
|
LideeUserDto login(LideeUserDto lideeUserDto);
|
||||||
|
|
||||||
|
LideeUserDto logincas(LideeUserDto lideeUserDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改密码
|
* 修改密码
|
||||||
* @param dto
|
* @param dto
|
||||||
|
|||||||
@@ -217,6 +217,79 @@ public class AccessUserServiceImpl implements AccessUserService {
|
|||||||
return lduser;
|
return lduser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LideeUserDto logincas(LideeUserDto lideeUserDto) {
|
||||||
|
|
||||||
|
//根据ticker获取用户信息
|
||||||
|
|
||||||
|
String loginName = lideeUserDto.getLoginName();
|
||||||
|
|
||||||
|
loginName="admin";
|
||||||
|
// String password = lideeUserDto.getPassword();
|
||||||
|
String password ="Lidee@654!";
|
||||||
|
|
||||||
|
// 1.判断用户是否存在
|
||||||
|
LambdaQueryWrapper<AccessUser> wrapper = Wrappers.lambdaQuery();
|
||||||
|
wrapper.eq(AccessUser::getLoginName, loginName);
|
||||||
|
AccessUser accessUser = accessUserMapper.selectOne(wrapper);
|
||||||
|
if (null == accessUser) {
|
||||||
|
throw BusinessExceptionBuilder.build(ResponseCode.LOGIN_ERROR);
|
||||||
|
}
|
||||||
|
// 2.密码错误
|
||||||
|
String sss=MD5Util.encrypt(password);
|
||||||
|
// if (!accessUser.getPassword().equals(MD5Util.encrypt(password))) {
|
||||||
|
// throw BusinessExceptionBuilder.build(ResponseCode.USER_PASSWORD_ERROR);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// 3.如果该用户登录未过期,这里允许一个用户在多个终端登录
|
||||||
|
String tokenKey = String.format(BusinessConstant.LIDEE_SECURITY_LOGIN_TOKEN, loginName);
|
||||||
|
String token = "";
|
||||||
|
LideeUserDto lduser = new LideeUserDto();
|
||||||
|
if (cacheHelper.exist(tokenKey)) {
|
||||||
|
token = cacheHelper.stringGet(tokenKey);
|
||||||
|
} else {
|
||||||
|
// 生成用户token
|
||||||
|
String uuid = LideeUtils.UUID();
|
||||||
|
token = jwtBean.createToken(loginName, uuid, 0, LideeConstant.TENANT_CODE);
|
||||||
|
cacheHelper.stringSetExpire(tokenKey, token, 3600);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4.读取用户最新人权限主信息
|
||||||
|
String userKey = String.format(BusinessConstant.LIDEE_SECURITY_LOGIN_USER, loginName);
|
||||||
|
|
||||||
|
//为了兼容底层其他数据库,不再写自定义sql
|
||||||
|
// List<String> authorities = accessUserMapper.queryAuthoritiesByLoginName(loginName);
|
||||||
|
|
||||||
|
//当前用户的roleCode集合
|
||||||
|
LambdaQueryWrapper<AccessUserRole> accessUserWrapper = Wrappers.lambdaQuery();
|
||||||
|
accessUserWrapper.select(AccessUserRole::getRoleCode);
|
||||||
|
accessUserWrapper.eq(AccessUserRole::getLoginName, loginName);
|
||||||
|
List<AccessUserRole> accessUserRoles = accessUserRoleMapper.selectList(accessUserWrapper);
|
||||||
|
Set<String> roleCodeSet = accessUserRoles.stream().map(AccessUserRole::getRoleCode).collect(Collectors.toSet());
|
||||||
|
if (roleCodeSet.size() < 1) {
|
||||||
|
lduser.setAuthorities(new ArrayList<>());
|
||||||
|
}else {
|
||||||
|
LambdaQueryWrapper<AccessRoleAuthority> accessRoleAuthorityWrapper = Wrappers.lambdaQuery();
|
||||||
|
accessRoleAuthorityWrapper.select(AccessRoleAuthority::getTarget, AccessRoleAuthority::getAction);
|
||||||
|
accessRoleAuthorityWrapper.in(AccessRoleAuthority::getRoleCode, roleCodeSet);
|
||||||
|
List<AccessRoleAuthority> accessRoleAuthorities = accessRoleAuthorityMapper.selectList(accessRoleAuthorityWrapper);
|
||||||
|
List<String> authorities = accessRoleAuthorities.stream()
|
||||||
|
.map(accessRoleAuthority -> accessRoleAuthority.getTarget().concat(":").concat(accessRoleAuthority.getAction())).distinct().collect(Collectors.toList());
|
||||||
|
lduser.setAuthorities(authorities);
|
||||||
|
}
|
||||||
|
|
||||||
|
lduser.setLoginName(loginName);
|
||||||
|
lduser.setRealName(accessUser.getRealName());
|
||||||
|
lduser.setToken(token);
|
||||||
|
|
||||||
|
String ldUserStr = JSONObject.toJSONString(lduser);
|
||||||
|
cacheHelper.stringSetExpire(userKey, ldUserStr, 3600);
|
||||||
|
|
||||||
|
return lduser;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改密码
|
* 修改密码
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -144,4 +144,4 @@ customer:
|
|||||||
user:
|
user:
|
||||||
##新增用户默认密码
|
##新增用户默认密码
|
||||||
default:
|
default:
|
||||||
password: 123456
|
password: Lidee@654!
|
||||||
|
|||||||
Reference in New Issue
Block a user