From 8933441f4535cd01bcd5754ef3b033c1c6c79461 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 20 九月 2023 20:28:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java | 25 +++++++++++++++---------- 1 files changed, 15 insertions(+), 10 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 1457d0a..69f5c13 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 @@ -3,8 +3,9 @@ import com.alibaba.fastjson.JSON; import com.vci.ubcs.code.entity.TokenUserObject; import com.vci.ubcs.code.service.IPasswordFreeLoginService; -import com.vci.ubcs.code.util.HttpUtils; +import com.vci.ubcs.starter.util.HttpUtils; import io.jsonwebtoken.Claims; +import lombok.extern.slf4j.Slf4j; import org.apache.http.auth.AuthenticationException; import org.springblade.core.jwt.JwtUtil; import org.springblade.core.jwt.props.JwtProperties; @@ -30,6 +31,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; +import java.util.logging.Logger; import static org.springblade.core.secure.utils.AuthUtil.parseJWT; @@ -39,6 +41,7 @@ * @date 2023/9/11 15:45 */ @Service +@Slf4j public class PasswordFreeLoginServiceImpl implements IPasswordFreeLoginService { // 閫氳繃鏈嶅姟娉ㄥ唽涓績鑾峰彇缃戝叧鐨勭鍙e彿 @@ -46,10 +49,12 @@ private DiscoveryClient discoveryClient; // 閰嶇疆鐨勫厤瀵嗙櫥褰曠殑璐﹀彿鎵�灞炵殑绉熸埛id @Value("${password-free.pwd-free-tenant-id}") - // 閰嶇疆鐨則oken鍦╮edis涓殑鐢熷瓨鏃堕棿 private String pwdFreeTenantId; + // 閰嶇疆鐨則oken鍦╮edis涓殑鐢熷瓨鏃堕棿 @Value("${password-free.token-redis-expire}") private Long tokenRedisExpire; + @Value("${password-free.pwd-free-addr}") + private String pwdFreeAddr; @Autowired private BladeRedis bladeRedis; @@ -84,11 +89,14 @@ String ipAddr = request.getRemoteAddr(); // 鍏堝皾璇曚粠缂撳瓨褰撲腑鍙栵紝瀛樺湪灏辩洿鎺ヤ粠缂撳瓨涓幏鍙� String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName); - BladeUser user = null; + // 瑙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"; + String loginUrl = "http://"+pwdFreeAddr+":"+this.getGatewayPort("ubcs-gateway")+"/ubcs-auth/oauth/token"; + log.debug("褰撳墠鍏嶅瘑鐧诲綍璋冪敤鍦板潃锛�"+loginUrl); // 璇锋眰ubcs-auth鏈嶅姟鑾峰彇token锛屽厛璁剧疆璇锋眰澶� HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); @@ -118,10 +126,9 @@ authToken = "bearer " + tokenUserObject.getAccess_token(); // 灏唗oken瀛樺叆缂撳瓨褰撲腑,杩囨湡鏃堕棿涓�24灏忔椂 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; @@ -186,11 +193,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