Browse Source

feat: 适配定时任务获取令牌新接口

huangzqa 4 years ago
parent
commit
44844639f0

+ 1 - 1
dcuc-auth-api/pom.xml

@@ -30,4 +30,4 @@
 
     </dependencies>
 
-</project>
+</project>

+ 10 - 1
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IBimBusinessFacade.java

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

+ 1 - 1
dcuc-auth-model/pom.xml

@@ -28,4 +28,4 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
-</project>
+</project>

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

@@ -13,6 +13,8 @@ public class BimGetAppTokenItemRespVO {
 
     private Boolean result;
 
+    private String message;
+
     private String appToken;
 
 }

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

@@ -15,4 +15,6 @@ public class BimGetAppTokenReqVO {
 
     private String appId;
 
+    private String userToken;
+
 }

+ 34 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/bim/BimGetUserTokenItemRespVO.java

@@ -0,0 +1,34 @@
+package com.dragoninfo.dcuc.auth.auth.vo.bim;
+
+import lombok.Data;
+
+/**
+ * 获取用户令牌返回
+ *
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimGetUserTokenItemRespVO {
+
+    /**
+     * 消息ID
+     */
+    private String messageId;
+
+    /**
+     * 状态
+     */
+    private Boolean result;
+
+    /**
+     * 信息
+     */
+    private String message;
+
+    /**
+     * 用户令牌
+     */
+    private String userToken;
+
+}

+ 39 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/bim/BimGetUserTokenReqVO.java

@@ -0,0 +1,39 @@
+package com.dragoninfo.dcuc.auth.auth.vo.bim;
+
+import lombok.Data;
+
+/**
+ * 请求创建用户令牌
+ *
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimGetUserTokenReqVO {
+
+    /**
+     * 接口验证token
+     */
+    private String token;
+
+    /**
+     * 消息ID
+     */
+    private String messageId;
+
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 客户端IP
+     */
+    private String clientIp;
+
+}

+ 23 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/bim/BimGetUserTokenRespVO.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 BimGetUserTokenRespVO {
+
+    private Boolean success;
+
+    private BimGetUserTokenItemRespVO data;
+
+    private String errorCode;
+
+    private String errorMessage;
+
+    private BimRespException errorException;
+
+
+}

+ 1 - 1
dcuc-auth-service/pom.xml

@@ -286,4 +286,4 @@
             </build>
         </profile>
     </profiles>
-</project>
+</project>

+ 7 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/AuthRedisConstant.java

@@ -13,7 +13,7 @@ public class AuthRedisConstant {
     /**
      * 令牌命名空间
      */
-    public static final String REDIS_TOKEN_NAMESPACE = "DCUC-USER:";
+    public static final String REDIS_TOKEN_NAMESPACE = "DCUC-AUTH:";
     /**
      * 用户令牌命名空间
      */
@@ -24,8 +24,13 @@ public class AuthRedisConstant {
      */
     public static final String REDIS_BIM_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "TOKEN";
 
+    /**
+     * BIM USER_TOKEN命名空间
+     */
+    public static final String REDIS_BIM_USER_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "TASK_USER_TOKEN";
+
     /**
      * BIM APP_TOKEN命名空间
      */
-    public static final String REDIS_BIM_APP_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "APP_TOKEN";
+    public static final String REDIS_BIM_APP_TOKEN_NAMESPACE = REDIS_TOKEN_NAMESPACE + "TASK_APP_TOKEN";
 }

+ 7 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/BimBusinessFacade.java

@@ -38,7 +38,12 @@ public class BimBusinessFacade implements IBimBusinessFacade {
     }
 
     @Override
-    public String getAppToken(boolean needReGet) {
-        return bimBusiness.getAppToken(needReGet);
+    public String getUserToken(boolean needReGet) {
+        return bimBusiness.getUserToken(needReGet);
+    }
+
+    @Override
+    public String getAppToken(String userToken, boolean needReGet) {
+        return bimBusiness.getAppToken(userToken, needReGet);
     }
 }

+ 10 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/IBimBusiness.java

@@ -60,11 +60,20 @@ public interface IBimBusiness {
      */
     BimUserInfoItemRespVO getUserInfoByUserToken(String userToken);
 
+    /**
+     * 获取用户令牌
+     *
+     * @param needReGet 需要重新获取
+     * @return 用户令牌
+     */
+    String getUserToken(boolean needReGet);
+
     /**
      * 获取应用令牌
      *
+     * @param userToken 用户令牌
      * @param needReGet 需要重新获取
      * @return 应用令牌
      */
-    String getAppToken(boolean needReGet);
+    String getAppToken(String userToken, boolean needReGet);
 }

+ 73 - 10
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/BimBusinessImpl.java

@@ -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();

+ 11 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/DcucAuthConfig.java

@@ -49,10 +49,19 @@ public class DcucAuthConfig {
      */
     private String bimLoginId;
 
-
     /**
-     * 竹云调用方密
+     * 竹云应用方秘
      */
     private String bimSecretKey;
 
+    /**
+     * 竹云调用方用户名
+     */
+    private String bimUsername;
+
+    /**
+     * 竹云调用方密码
+     */
+    private String bimPassword;
+
 }

+ 1 - 1
pom.xml

@@ -153,4 +153,4 @@
             <uniqueVersion>false</uniqueVersion>
         </snapshotRepository>
     </distributionManagement>
-</project>
+</project>