Browse Source

fix 禁用用户无法登陆

tags/24082201
niohe·erbao 1 year ago
parent
commit
ae4a241413
5 changed files with 29 additions and 0 deletions
  1. +6
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/UserInfoHelperImpl.java
  2. +6
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/agent/AgentLoginUserDetailService.java
  3. +5
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/common/CommonLoginUserDetailService.java
  4. +5
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialLoginUserDetailService.java
  5. +7
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java

+ 6
- 0
pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/UserInfoHelperImpl.java View File

@@ -13,6 +13,7 @@ import com.ningdatech.pmapi.sys.mapper.RoleMapper;
import com.ningdatech.pmapi.sys.model.entity.Role; import com.ningdatech.pmapi.sys.model.entity.Role;
import com.ningdatech.pmapi.sys.model.entity.UserRole; import com.ningdatech.pmapi.sys.model.entity.UserRole;
import com.ningdatech.pmapi.sys.service.IUserRoleService; import com.ningdatech.pmapi.sys.service.IUserRoleService;
import com.ningdatech.pmapi.user.constant.UserAvailableEnum;
import com.ningdatech.pmapi.user.entity.UserInfo; import com.ningdatech.pmapi.user.entity.UserInfo;
import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum;
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO;
@@ -118,6 +119,11 @@ public class UserInfoHelperImpl implements UserInfoHelper {
userFullInfo.setUsername(userInfo.getRealName()); userFullInfo.setUsername(userInfo.getRealName());
userFullInfo.setMobile(userInfo.getMobile()); userFullInfo.setMobile(userInfo.getMobile());
userFullInfo.setAccountId(userInfo.getAccountId()); userFullInfo.setAccountId(userInfo.getAccountId());

String available = userInfo.getAvailable();
if (StringUtils.isNotBlank(available)) {
userFullInfo.setAvailable(UserAvailableEnum.valueOf(available));
}
return userFullInfo; return userFullInfo;
} }




+ 6
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/agent/AgentLoginUserDetailService.java View File

@@ -2,8 +2,10 @@ package com.ningdatech.pmapi.user.security.auth.agent;




import com.ningdatech.pmapi.common.helper.UserInfoHelper; import com.ningdatech.pmapi.common.helper.UserInfoHelper;
import com.ningdatech.pmapi.user.constant.UserAvailableEnum;
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO;
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails;
import com.ningdatech.pmapi.user.security.auth.validate.CommonLoginException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -32,6 +34,10 @@ public class AgentLoginUserDetailService implements UserDetailsService {
if (Objects.isNull(userFullInfoDTO)) { if (Objects.isNull(userFullInfoDTO)) {
throw new UsernameNotFoundException(String.format("%s user not exist", username)); throw new UsernameNotFoundException(String.format("%s user not exist", username));
} }
if (UserAvailableEnum.DISABLE.equals(userFullInfoDTO.getAvailable())) {
throw new CommonLoginException("该账号已被禁用");
}

UserInfoDetails userInfoDetails = new UserInfoDetails(); UserInfoDetails userInfoDetails = new UserInfoDetails();
userInfoDetails.setUserId(userFullInfoDTO.getUserId()); userInfoDetails.setUserId(userFullInfoDTO.getUserId());
userInfoDetails.setUsername(userFullInfoDTO.getUsername()); userInfoDetails.setUsername(userFullInfoDTO.getUsername());


+ 5
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/common/CommonLoginUserDetailService.java View File

@@ -1,9 +1,11 @@
package com.ningdatech.pmapi.user.security.auth.common; package com.ningdatech.pmapi.user.security.auth.common;




import com.ningdatech.pmapi.user.constant.UserAvailableEnum;
import com.ningdatech.pmapi.user.manage.UserInfoManage; import com.ningdatech.pmapi.user.manage.UserInfoManage;
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO;
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails;
import com.ningdatech.pmapi.user.security.auth.validate.CommonLoginException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -30,6 +32,9 @@ public class CommonLoginUserDetailService implements UserDetailsService {
if (Objects.isNull(userFullInfoDTO)) { if (Objects.isNull(userFullInfoDTO)) {
throw new UsernameNotFoundException(String.format("%s user not exist", username)); throw new UsernameNotFoundException(String.format("%s user not exist", username));
} }
if (UserAvailableEnum.DISABLE.equals(userFullInfoDTO.getAvailable())) {
throw new CommonLoginException("该账号已被禁用");
}
UserInfoDetails userInfoDetails = new UserInfoDetails(); UserInfoDetails userInfoDetails = new UserInfoDetails();
userInfoDetails.setUserId(userFullInfoDTO.getUserId()); userInfoDetails.setUserId(userFullInfoDTO.getUserId());
userInfoDetails.setUsername(userFullInfoDTO.getUsername()); userInfoDetails.setUsername(userFullInfoDTO.getUsername());


+ 5
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialLoginUserDetailService.java View File

@@ -2,6 +2,7 @@ package com.ningdatech.pmapi.user.security.auth.credential;




import com.ningdatech.pmapi.user.constant.LoginTypeEnum; import com.ningdatech.pmapi.user.constant.LoginTypeEnum;
import com.ningdatech.pmapi.user.constant.UserAvailableEnum;
import com.ningdatech.pmapi.user.convert.UserInfoConvertor; import com.ningdatech.pmapi.user.convert.UserInfoConvertor;
import com.ningdatech.pmapi.user.manage.UserInfoManage; import com.ningdatech.pmapi.user.manage.UserInfoManage;
import com.ningdatech.pmapi.user.security.auth.constants.UserDeatilsServiceConstant; import com.ningdatech.pmapi.user.security.auth.constants.UserDeatilsServiceConstant;
@@ -60,6 +61,10 @@ public class CredentialLoginUserDetailService implements UserDetailsService {
throw new UsernameNotFoundException(String.format("%s user not exist", username)); throw new UsernameNotFoundException(String.format("%s user not exist", username));
} }
} }

if (UserAvailableEnum.DISABLE.equals(userFullInfo.getAvailable())) {
throw new CommonLoginException("该账号已被禁用");
}
return UserInfoConvertor.toUserInfoDetails(userFullInfo); return UserInfoConvertor.toUserInfoDetails(userFullInfo);
} }
} }

+ 7
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java View File

@@ -2,6 +2,7 @@ package com.ningdatech.pmapi.user.security.auth.model;


import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.ningdatech.pmapi.sys.model.entity.Role; import com.ningdatech.pmapi.sys.model.entity.Role;
import com.ningdatech.pmapi.user.constant.UserAvailableEnum;
import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum;
import lombok.Data; import lombok.Data;


@@ -74,6 +75,12 @@ public class UserFullInfoDTO {
private Long accountId; private Long accountId;


/** /**
* 用户是否可用
*/
private UserAvailableEnum available;


/**
* 取最高的权限 * 取最高的权限
* *
* @return * @return


Loading…
Cancel
Save