From 735b8b4c7eea4a5a6d42f25f070944f85e9603d9 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 18 一月 2024 19:55:49 +0800
Subject: [PATCH] 分类查询接口优化
---
Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java | 55 +++++++++++++++++++++++++------------------------------
1 files changed, 25 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..9679f27 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,26 @@
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 (Func.isEmpty(user) || Func.isEmpty(user.getId())) {
+ throw new InvalidGrantException("passwordfree grant failure, user is null");
}
+ // 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁琚仠鐢�
+ if(user.getUserStatus() == 1){
+ throw new InvalidGrantException(TokenUtil.USER_LOCK);
+ }
+ 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