From 8169bb01de23d48a2ccd289fe3bc394b7821a4f5 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 19 九月 2023 16:23:37 +0800
Subject: [PATCH] 代码提交
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java | 32 +++++++++++++++++++-------------
1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
index fbedf76..7008270 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -11,6 +11,7 @@
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
@@ -44,10 +45,15 @@
// 閫氳繃鏈嶅姟娉ㄥ唽涓績鑾峰彇缃戝叧鐨勭鍙e彿
@Autowired
private DiscoveryClient discoveryClient;
- @Value("${user-info.pwd-free-tenant-id}")
+ // 閰嶇疆鐨勫厤瀵嗙櫥褰曠殑璐﹀彿鎵�灞炵殑绉熸埛id
+ @Value("${password-free.pwd-free-tenant-id}")
+ // 閰嶇疆鐨則oken鍦╮edis涓殑鐢熷瓨鏃堕棿
private String pwdFreeTenantId;
+ @Value("${password-free.token-redis-expire}")
+ private Long tokenRedisExpire;
@Autowired
private BladeRedis bladeRedis;
+
// 缂撳瓨鍚�
public static final String PWD_FREE_LOGIN_TOKEN = "pwdFreeLogin:Token:";
private static JwtProperties jwtProperties;
@@ -68,20 +74,22 @@
/**
* 鍏嶅瘑鐧诲綍锛屾敼鍙樺綋鍓峸ebservice璇锋眰鐨刪eader
- * @param username 璐﹀彿
+ * @param userName 璐﹀彿
* @return
*/
@Override
- public boolean passwordFreeLogin(String username, ServletRequest servletRequest) throws AuthenticationException {
+ public boolean passwordFreeLogin(String userName, ServletRequest servletRequest) throws AuthenticationException {
//杩涙潵鍏堝垽鏂紦瀛樹腑鏄惁瀛樺湪token
// 璇锋眰鏉ヨ嚜宸卞摢涓猧p鍦板潃
HttpServletRequest request = (HttpServletRequest) servletRequest;
String ipAddr = request.getRemoteAddr();
// 鍏堝皾璇曚粠缂撳瓨褰撲腑鍙栵紝瀛樺湪灏辩洿鎺ヤ粠缂撳瓨涓幏鍙�
- String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr);
- BladeUser user = null;
+ String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName);
+ // 瑙f瀽token瀛樻斁杩沘ttr涓�
+ String token2 = JwtUtil.getToken(authToken);
+ BladeUser user = this.getUser(token2);
//涓嶅瓨鍦ㄥ氨璇锋眰
- if(Func.isEmpty(authToken)){
+ if(Func.isEmpty(authToken) || Func.isEmpty(user)){
// 鍏嶅瘑鐧诲綍鎺ュ彛鍦板潃
String loginUrl = "http://localhost:"+this.getGatewayPort("ubcs-gateway")+"/ubcs-auth/oauth/token";
// 璇锋眰ubcs-auth鏈嶅姟鑾峰彇token锛屽厛璁剧疆璇锋眰澶�
@@ -91,7 +99,7 @@
headers.set("Tenant-Id", pwdFreeTenantId);
//璁剧疆璇锋眰浣撳弬鏁�
MultiValueMap<String,String> parameters = new LinkedMultiValueMap<String,String>();
- parameters.add("username",username);
+ parameters.add("username",userName);
parameters.add("grant_type", "passwordfree");
parameters.add("scope", "all");
parameters.add("type", "account");
@@ -112,11 +120,11 @@
// 鎷兼帴token鏍煎紡
authToken = "bearer " + tokenUserObject.getAccess_token();
// 灏唗oken瀛樺叆缂撳瓨褰撲腑,杩囨湡鏃堕棿涓�24灏忔椂
- bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr,"bearer "+tokenUserObject.getAccess_token(),60*60*60*24L);
+ bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName,"bearer "+tokenUserObject.getAccess_token(),tokenRedisExpire);
+ token2 = JwtUtil.getToken(authToken);
+ user = this.getUser(token2);
}
- // 瑙f瀽token瀛樻斁杩沘ttr涓�
- String token2 = JwtUtil.getToken(authToken);
- user = this.getUser(token2);
+
//request.setAttribute("Blade-Auth",token);
request.setAttribute("_BLADE_USER_REQUEST_ATTR_",user);
return true;
@@ -181,11 +189,9 @@
if (StringUtil.isNotBlank(authToken)) {
token = JwtUtil.getToken(authToken);
}
-
if (StringUtil.isNotBlank(token)) {
claims = parseJWT(token);
}
-
if (ObjectUtil.isNotEmpty(claims) && getJwtProperties().getState()) {
tenantId = Func.toStr(claims.get("tenant_id"));
String userId = Func.toStr(claims.get("user_id"));
--
Gitblit v1.9.3