Browse Source

feature: 增加获取应用令牌

huangzqa 4 years ago
parent
commit
77dafad290

+ 8 - 0
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IBimBusinessFacade.java

@@ -51,4 +51,12 @@ public interface IBimBusinessFacade {
     @GetMapping("getUserInfoByUserToken")
     BimUserInfoItemRespVO getUserInfoByUserToken(@RequestParam("userToken") String userToken);
 
+    /**
+     * 获取应用令牌
+     *
+     * @param needReGet 需要重新获取
+     * @return 应用令牌
+     */
+    @GetMapping("getAppToken")
+    String getAppToken(@RequestParam("needReGet") boolean needReGet);
 }

+ 18 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/bim/BimGetAppTokenItemRespVO.java

@@ -0,0 +1,18 @@
+package com.dragoninfo.dcuc.auth.auth.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimGetAppTokenItemRespVO {
+
+    private String messageId;
+
+    private Boolean result;
+
+    private String appToken;
+
+}

+ 18 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/bim/BimGetAppTokenReqVO.java

@@ -0,0 +1,18 @@
+package com.dragoninfo.dcuc.auth.auth.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimGetAppTokenReqVO {
+
+    private String token;
+
+    private String messageId;
+
+    private String appId;
+
+}

+ 23 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/bim/BimGetAppTokenRespVO.java

@@ -0,0 +1,23 @@
+package com.dragoninfo.dcuc.auth.auth.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimGetAppTokenRespVO {
+
+    private Boolean success;
+
+    private BimGetAppTokenItemRespVO data;
+
+    private String errorCode;
+
+    private String errorMessage;
+
+    private BimRespException errorException;
+
+
+}

+ 6 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/AuthRedisConstant.java

@@ -22,5 +22,10 @@ public class AuthRedisConstant {
     /**
      * BIM token命名空间
      */
-    public static final String REDIS_BIM_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "TOKEN:";
+    public static final String REDIS_BIM_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "TOKEN";
+
+    /**
+     * BIM APP_TOKEN命名空间
+     */
+    public static final String REDIS_BIM_APP_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "APP_TOKEN";
 }

+ 5 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/BimBusinessFacade.java

@@ -36,4 +36,9 @@ public class BimBusinessFacade implements IBimBusinessFacade {
     public BimUserInfoItemRespVO getUserInfoByUserToken(String userToken) {
         return bimBusiness.getUserInfoByUserToken(userToken);
     }
+
+    @Override
+    public String getAppToken(boolean needReGet) {
+        return bimBusiness.getAppToken(needReGet);
+    }
 }

+ 8 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/IBimBusiness.java

@@ -59,4 +59,12 @@ public interface IBimBusiness {
      * @return 用户信息
      */
     BimUserInfoItemRespVO getUserInfoByUserToken(String userToken);
+
+    /**
+     * 获取应用令牌
+     *
+     * @param needReGet 需要重新获取
+     * @return 应用令牌
+     */
+    String getAppToken(boolean needReGet);
 }

+ 56 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/BimBusinessImpl.java

@@ -272,4 +272,60 @@ public class BimBusinessImpl implements IBimBusiness {
 
         return bimRespVo.getData();
     }
+
+    @Override
+    public String getAppToken(boolean needReGet) {
+
+        String redisAppToken = String.valueOf(redisTemplate.opsForValue().get(AuthRedisConstant.REDIS_BIM_APP_TOKEN_NAMESPACE));
+
+        String appToken = "";
+
+        if (StrUtil.isNotBlank(redisAppToken)) {
+            appToken = redisAppToken;
+        }
+
+        if (needReGet) {
+            appToken = httpGetAppToken();
+        }
+        return appToken;
+    }
+
+    /**
+     * 获取应用令牌
+     *
+     * @return 应用令牌
+     */
+    private String httpGetAppToken() {
+        String messageId = UUIDUtils.getUUID();
+        String token = getToken();
+
+        String loginId = dcucAuthConfig.getBimLoginId();
+
+        BimGetAppTokenReqVO bimGetAppTokenReqVO = new BimGetAppTokenReqVO();
+        bimGetAppTokenReqVO.setAppId(loginId);
+        bimGetAppTokenReqVO.setMessageId(messageId);
+        bimGetAppTokenReqVO.setToken(token);
+
+        String reqJson = JsonUtils.toJSONString(bimGetAppTokenReqVO);
+
+        log.info("getAppTokenByAppId req :{}", reqJson);
+
+        String url = dcucAuthConfig.getBimUrl() + "/api/rest/customization/ExpApiCustomDragonitService/getAppTokenByAppId";
+
+        log.info("getAppTokenByAppId req url:{}", reqJson);
+        String postResp = HttpRequest.post(url)
+                .body(reqJson)
+                .execute()
+                .body();
+        log.info("getAppTokenByAppId resp :{}", postResp);
+
+        BimGetAppTokenRespVO bimRespVo = JsonUtils.parseObject(postResp, BimGetAppTokenRespVO.class);
+
+        if (!bimRespVo.getSuccess()) {
+            log.error("getAppTokenByAppId error:{}", postResp);
+        }
+
+        BimGetAppTokenItemRespVO data = bimRespVo.getData();
+        return data.getAppToken();
+    }
 }