|
@@ -2,6 +2,8 @@ package com.dragoninfo.dcuc.auth.business.impl;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
+import cn.hutool.system.HostInfo;
|
|
|
+import cn.hutool.system.SystemUtil;
|
|
|
import com.dragoninfo.dcuc.auth.AuthRedisConstant;
|
|
|
import com.dragoninfo.dcuc.auth.auth.enumresources.BimTokenResultEnum;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.bim.*;
|
|
@@ -274,7 +276,23 @@ public class BimBusinessImpl implements IBimBusiness {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String getAppToken(boolean needReGet) {
|
|
|
+ public String getUserToken(boolean needReGet) {
|
|
|
+ String redisUserToken = String.valueOf(redisTemplate.opsForValue().get(AuthRedisConstant.REDIS_BIM_USER_TOKEN_NAMESPACE));
|
|
|
+
|
|
|
+ String userToken = "";
|
|
|
+
|
|
|
+ if (StrUtil.isNotBlank(redisUserToken)) {
|
|
|
+ userToken = redisUserToken;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (needReGet) {
|
|
|
+ userToken = httpGetUseToken();
|
|
|
+ }
|
|
|
+ return userToken;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getAppToken(String userToken, boolean needReGet) {
|
|
|
|
|
|
String redisAppToken = String.valueOf(redisTemplate.opsForValue().get(AuthRedisConstant.REDIS_BIM_APP_TOKEN_NAMESPACE));
|
|
|
|
|
@@ -285,44 +303,89 @@ public class BimBusinessImpl implements IBimBusiness {
|
|
|
}
|
|
|
|
|
|
if (needReGet) {
|
|
|
- appToken = httpGetAppToken();
|
|
|
+ appToken = httpGetAppToken(userToken);
|
|
|
}
|
|
|
return appToken;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取用户令牌
|
|
|
+ *
|
|
|
+ * @return 用户令牌
|
|
|
+ */
|
|
|
+ private String httpGetUseToken() {
|
|
|
+ String messageId = UUIDUtils.getUUID();
|
|
|
+ String token = getToken();
|
|
|
+ String bimUsername = dcucAuthConfig.getBimUsername();
|
|
|
+ String bimPassword = dcucAuthConfig.getBimPassword();
|
|
|
+ HostInfo hostInfo = SystemUtil.getHostInfo();
|
|
|
+ String address = hostInfo.getAddress();
|
|
|
+
|
|
|
+ BimGetUserTokenReqVO bimGetUserTokenReqVO = new BimGetUserTokenReqVO();
|
|
|
+ bimGetUserTokenReqVO.setUsername(bimUsername);
|
|
|
+ bimGetUserTokenReqVO.setPassword(bimPassword);
|
|
|
+ bimGetUserTokenReqVO.setClientIp(address);
|
|
|
+ bimGetUserTokenReqVO.setMessageId(messageId);
|
|
|
+ bimGetUserTokenReqVO.setToken(token);
|
|
|
+
|
|
|
+ String reqJson = JsonUtils.toJSONString(bimGetUserTokenReqVO);
|
|
|
+
|
|
|
+ log.info("getUserToken req :{}", reqJson);
|
|
|
+
|
|
|
+ String url = dcucAuthConfig.getBimUrl() + "/api/rest/customization/ExpApiCustomDragonitService/getUserToken";
|
|
|
+
|
|
|
+ log.info("getUserToken req url:{}", reqJson);
|
|
|
+ String postResp = HttpRequest.post(url)
|
|
|
+ .body(reqJson)
|
|
|
+ .execute()
|
|
|
+ .body();
|
|
|
+ log.info("getUserToken resp :{}", postResp);
|
|
|
+
|
|
|
+ BimGetUserTokenRespVO bimRespVo = JsonUtils.parseObject(postResp, BimGetUserTokenRespVO.class);
|
|
|
+
|
|
|
+ if (!bimRespVo.getSuccess()) {
|
|
|
+ log.error("getUserToken error:{}", postResp);
|
|
|
+ }
|
|
|
+
|
|
|
+ BimGetUserTokenItemRespVO data = bimRespVo.getData();
|
|
|
+ return data.getUserToken();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取应用令牌
|
|
|
*
|
|
|
+ * @param userToken 用户令牌
|
|
|
* @return 应用令牌
|
|
|
*/
|
|
|
- private String httpGetAppToken() {
|
|
|
+ private String httpGetAppToken(String userToken) {
|
|
|
String messageId = UUIDUtils.getUUID();
|
|
|
String token = getToken();
|
|
|
|
|
|
- String loginId = dcucAuthConfig.getBimLoginId();
|
|
|
+ String appCode = dcucAuthConfig.getAppCode();
|
|
|
|
|
|
BimGetAppTokenReqVO bimGetAppTokenReqVO = new BimGetAppTokenReqVO();
|
|
|
- bimGetAppTokenReqVO.setAppId(loginId);
|
|
|
+ bimGetAppTokenReqVO.setAppId(appCode);
|
|
|
bimGetAppTokenReqVO.setMessageId(messageId);
|
|
|
bimGetAppTokenReqVO.setToken(token);
|
|
|
+ bimGetAppTokenReqVO.setUserToken(userToken);
|
|
|
|
|
|
String reqJson = JsonUtils.toJSONString(bimGetAppTokenReqVO);
|
|
|
|
|
|
- log.info("getAppTokenByAppId req :{}", reqJson);
|
|
|
+ log.info("getAppToken req :{}", reqJson);
|
|
|
|
|
|
- String url = dcucAuthConfig.getBimUrl() + "/api/rest/customization/ExpApiCustomDragonitService/getAppTokenByAppId";
|
|
|
+ String url = dcucAuthConfig.getBimUrl() + "/api/rest/customization/ExpApiCustomDragonitService/getAppToken";
|
|
|
|
|
|
- log.info("getAppTokenByAppId req url:{}", reqJson);
|
|
|
+ log.info("getAppToken req url:{}", reqJson);
|
|
|
String postResp = HttpRequest.post(url)
|
|
|
.body(reqJson)
|
|
|
.execute()
|
|
|
.body();
|
|
|
- log.info("getAppTokenByAppId resp :{}", postResp);
|
|
|
+ log.info("getAppToken resp :{}", postResp);
|
|
|
|
|
|
BimGetAppTokenRespVO bimRespVo = JsonUtils.parseObject(postResp, BimGetAppTokenRespVO.class);
|
|
|
|
|
|
if (!bimRespVo.getSuccess()) {
|
|
|
- log.error("getAppTokenByAppId error:{}", postResp);
|
|
|
+ log.error("getAppToken error:{}", postResp);
|
|
|
}
|
|
|
|
|
|
BimGetAppTokenItemRespVO data = bimRespVo.getData();
|