From a2b5b21a0248e43c732c0d3a15486eeef38fd419 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 18 十月 2023 11:17:29 +0800
Subject: [PATCH] 登录接口增加用户状态判断,修改主数据统计配置保存接口

---
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java                                         |    1 +
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java                     |    6 ++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java           |    3 +++
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java                        |    4 ++++
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/CaptchaTokenGranter.java                             |    2 +-
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java |    4 ++--
 6 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/CaptchaTokenGranter.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/CaptchaTokenGranter.java
index 31d5f6b..50a0220 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/CaptchaTokenGranter.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/CaptchaTokenGranter.java
@@ -47,7 +47,7 @@
 		Authentication userAuth = new UsernamePasswordAuthenticationToken(username, password);
 		((AbstractAuthenticationToken) userAuth).setDetails(parameters);
 		try {
-				userAuth = authenticationManager.authenticate(userAuth);
+			userAuth = authenticationManager.authenticate(userAuth);
 		}
 		catch (AccountStatusException | BadCredentialsException ase) {
 			//covers expired, locked, disabled cases (mentioned in section 5.2, draft 31)
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java
index 3d5f4e6..9bdae1d 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java
@@ -85,6 +85,10 @@
 
 		// 鏋勫缓鎺堟潈淇℃伅
 		User user = result.getData().getUser();
+		// 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁琚仠鐢�
+		if(user.getUserStatus() == 1){
+			throw new InvalidGrantException(TokenUtil.USER_LOCK);
+		}
 		Kv detail = result.getData().getDetail();
 		if (user == null || user.getId() == null) {
 			throw new InvalidGrantException("passwordfree grant failure, user is null");
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
index 1320bca..18730fb 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
@@ -40,11 +40,13 @@
 import com.vci.ubcs.system.entity.Tenant;
 import com.vci.ubcs.system.feign.ISysClient;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
 import org.springframework.security.oauth2.common.exceptions.UserDeniedAuthorizationException;
 import org.springframework.stereotype.Service;
 
@@ -194,6 +196,10 @@
 					setFailCount(tenantId, username, count,strategy.getLockingTime());
 					throw new UsernameNotFoundException(TokenUtil.USER_NOT_FOUND);
 				}
+				// 鐢ㄦ埛鐘舵�佷负1鏃惰鏄庤鐢ㄦ埛琚攣瀹�
+				if(user.getUserStatus() == 1){
+					throw new InvalidGrantException(TokenUtil.USER_LOCK);
+				}
 				String hex = DigestUtil.hex(password);
 				// 鐢ㄦ埛瀛樺湪浣嗗瘑鐮侀敊璇�,瓒呰繃娆℃暟鍒欓攣瀹氳处鍙�
 				if (grantType != null && !grantType.equals(TokenUtil.REFRESH_TOKEN_KEY) && !user.getPassword().equals(hex)) {
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java
index e133c15..424fa68 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java
@@ -85,6 +85,7 @@
 	public final static String PASSWORD_KEY = "password";
 	public final static String GRANT_TYPE_KEY = "grant_type";
 	public final static String REFRESH_TOKEN_KEY = "refresh_token";
+	public final static String USER_LOCK = "褰撳墠鐧诲綍鐢ㄦ埛宸茶鍋滅敤锛岃鑱旂郴绠$悊瑙e皝璐﹀彿銆�";
 
 	private static BladeTenantProperties tenantProperties;
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
index c063e36..ef4c97a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
@@ -54,6 +54,9 @@
 	 */
 	@Override
 	public List<MdmCount> getMdmCounts(String userId) throws ServiceException{
+		if(Func.isBlank(userId)){
+			throw new ServiceException("蹇呬紶鍙傛暟鐢ㄦ埛id涓嶈兘涓虹┖");
+		}
 		/** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌涓氬姟绫诲瀷鍚嶇О锛岀浉褰撲簬鎷垮埌涓绘暟鎹〃鍚�
 			椤跺眰鑺傜偣鐨刡tmtypeid杩橀渶瑕佺敤浣滄煡璇㈡潯浠跺搴旂殑鑿滃崟琛ㄧ殑code瀛楁
 			浣嗘槸涓轰簡鍑忓皯鏌ヨ娆℃暟锛屽氨闇�鍦ㄦ煡璇㈡槸浣跨敤btmtypeid瀛楁杩涜鎺掑簭
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
index b5667fb..c24d37f 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
@@ -44,8 +44,8 @@
 			MdmCountConfig mdmCountConfigDB = getMdmCountConfig(mdmCountConfigVO.getUserId().toString());
 			MdmCountConfig mdmCountConfig = new MdmCountConfig();
 			//鏂板
-			if(Func.isBlank(mdmCountConfigVO.getId().toString())){
-				Func.copy(mdmCountConfigVO,mdmCountConfig);
+			if(Func.isEmpty(mdmCountConfigDB)){
+				mdmCountConfig.setUserId(mdmCountConfigVO.getUserId());
 			}else {
 				//淇敼
 				Func.copy(mdmCountConfigDB,mdmCountConfig);

--
Gitblit v1.9.3