Merge pull request #887 from dataease/pr@dev@fix_ldap_validate

fix: 修复ldap用户重复验证
This commit is contained in:
fit2cloud-chenyw 2021-09-27 11:19:32 +08:00 committed by GitHub
commit 49f8c0e335
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 2 deletions

View File

@ -70,12 +70,12 @@ public class AuthServer implements AuthApi {
DataEaseException.throwException(validateResult.getMsg());
}
XpackLdapUserEntity ldapUserEntity = validateResult.getData();
SysUserEntity user = authUserService.getUserByName(username);
SysUserEntity user = authUserService.getLdapUserByName(username);
if(ObjectUtils.isEmpty(user) || ObjectUtils.isEmpty(user.getUserId())) {
LdapAddRequest ldapAddRequest = new LdapAddRequest();
ldapAddRequest.setUsers(new ArrayList<XpackLdapUserEntity>(){{add(ldapUserEntity);}});
ldapAddRequest.setEnabled(1L);
ldapAddRequest.setDeptId(1L);
// ldapAddRequest.setDeptId(1L);
ldapAddRequest.setRoleIds(new ArrayList<Long>(){{add(2L);}});
sysUserService.validateExistUser(ldapUserEntity.getUserName(), ldapUserEntity.getEmail());
sysUserService.saveLdapUsers(ldapAddRequest);

View File

@ -13,6 +13,8 @@ public interface AuthUserService {
SysUserEntity getUserByName(String username);
SysUserEntity getLdapUserByName(String username);
SysUserEntity getUserBySub(String sub);
List<String> roles(Long userId);

View File

@ -52,6 +52,12 @@ public class AuthUserServiceImpl implements AuthUserService {
return authMapper.findUserByName(username);
}
@Override
public SysUserEntity getLdapUserByName(String username) {
return authMapper.findLdapUserByName(username);
}
@Override
public SysUserEntity getUserBySub(String sub) {
return authMapper.findUserBySub(sub);

View File

@ -25,6 +25,8 @@ public interface AuthMapper {
SysUserEntity findUserByName(@Param("username") String username);
SysUserEntity findLdapUserByName(@Param("username") String username);
SysUserEntity findUserBySub(@Param("sub") String sub);

View File

@ -28,6 +28,10 @@
select user_id, username,nick_name, dept_id, password, enabled,email, phone, language ,is_admin from sys_user where username = #{username}
</select>
<select id="findLdapUserByName" resultMap="baseMap">
select user_id, username,nick_name, dept_id, password, enabled,email, phone, language ,is_admin from sys_user a where username = #{username} and a.from = 1
</select>
<select id="findUserBySub" resultMap="baseMap">
select user_id, username,nick_name, dept_id, password, enabled,email, phone, language ,is_admin from sys_user where sub = #{sub}
</select>