From b89fc7c55c756e71d5c5133a799430c294059be1 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 15 九月 2023 08:47:53 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java |   50 ++++++++++++++++++++------------------------------
 1 files changed, 20 insertions(+), 30 deletions(-)

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 aab9a47..3d5f4e6 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
@@ -34,11 +34,12 @@
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.WebUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.security.authentication.AbstractAuthenticationToken;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.core.env.Environment;
+import org.springframework.security.authentication.*;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
@@ -47,6 +48,7 @@
 import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -59,12 +61,11 @@
  */
 public class PwdFreeLoginTokenGranter extends AbstractTokenGranter {
 	private static final String GRANT_TYPE = "passwordfree";
-	private static final Integer AUTH_SUCCESS_CODE = 2000;
-	private final AuthenticationManager authenticationManager;
+	private final IUserClient userClient;
 
-	public PwdFreeLoginTokenGranter(AuthenticationManager authenticationManager, AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory) {
+	public PwdFreeLoginTokenGranter(AuthorizationServerTokenServices tokenServices, IUserClient userClient, ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory) {
 		super(tokenServices, clientDetailsService, requestFactory, GRANT_TYPE);
-		this.authenticationManager = authenticationManager;
+		this.userClient = userClient;
 	}
 
 	@Override
@@ -77,32 +78,21 @@
 		Map<String, String> parameters = new LinkedHashMap<>(tokenRequest.getRequestParameters());
 
 		// 鏍规嵁鍙傛暟杩涜鑷畾涔夌殑鎺堟潈閫昏緫
-		// 绀轰緥涓娇鐢ㄤ簡纭紪鐮佺殑鏂瑰紡楠岃瘉璐﹀彿鍜岀敓鎴愭巿鏉冧俊鎭�
 		String userName = parameters.get("username");
-		String password = parameters.get("password");
-		// 缁勮鏁版嵁
-		//UserOauth userOauth = Objects.requireNonNull(BeanUtil.copy(authUser, UserOauth.class));
-		//userOauth.setTenantId(tenantId);
-		//userOauth.setUuid(authUser.getUuid());
-
 		// 杩滅▼璋冪敤锛岃幏鍙栬璇佷俊鎭�
-		//R<UserInfo> result = userClient.userAuthInfo(userOauth);
-		BladeUserDetails bladeUserDetails = null;
-		// 閰嶇疆鐨勫瘑鐮侊紝鎵�鏈夎蛋鍏嶅瘑鎺ュ彛鐨勯兘璁剧疆缁熶竴鐨勫瘑鐮�
-		if ("password".equals(password)) {
-			// 鏋勫缓鎺堟潈淇℃伅
-			//User user = result.getData().getUser();
-			//Kv detail = result.getData().getDetail();
-//			if (user == null || user.getId() == null) {
-//				throw new InvalidGrantException("social grant failure, user is null");
-//			}
-//			bladeUserDetails = new BladeUserDetails(user.getId(),
-//				tenantId, result.getData().getOauthId(), userName, "webservice鍏嶅瘑鐧诲綍", "0", "0", "0", "0", Func.toStr(userOauth.getAvatar(), TokenUtil.DEFAULT_AVATAR),
-//				userName, AuthConstant.ENCRYPT + password, detail, true, true, true, true,
-//				AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles())));
-		} else {
-			throw new InvalidGrantException("passwordfree grant failure, auth response is not success");
+		R<UserInfo> result = userClient.userInfo(tenantId,userName);
+		BladeUserDetails bladeUserDetails;
+
+		// 鏋勫缓鎺堟潈淇℃伅
+		User user = result.getData().getUser();
+		Kv detail = result.getData().getDetail();
+		if (user == null || user.getId() == null) {
+			throw new InvalidGrantException("passwordfree grant failure, user is null");
 		}
+		bladeUserDetails = new BladeUserDetails(user.getId(),
+			tenantId, result.getData().getOauthId(), user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(result.getData().getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR),
+			user.getName(), AuthConstant.ENCRYPT + user.getPassword(), detail, true, true, true, true,
+			AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles())));
 
 		// 缁勮璁よ瘉鏁版嵁锛屽叧闂瘑鐮佹牎楠�
 		Authentication userAuth = new UsernamePasswordAuthenticationToken(bladeUserDetails, null, bladeUserDetails.getAuthorities());

--
Gitblit v1.9.3