소스 검색

feature(修改为新的接口):

huangzqa 4 년 전
부모
커밋
702c06a036
18개의 변경된 파일347개의 추가작업 그리고 132개의 파일을 삭제
  1. 111 0
      src/main/java/com/dragoninfo/dcuc/authweb/business/BimBusiness.java
  2. 31 34
      src/main/java/com/dragoninfo/dcuc/authweb/business/HwIdentityBusiness.java
  3. 14 6
      src/main/java/com/dragoninfo/dcuc/authweb/config/DcucAuthWebConfig.java
  4. 5 1
      src/main/java/com/dragoninfo/dcuc/authweb/enums/HwTokenResultEnum.java
  5. 32 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimAppPermissionUpdateReqVO.java
  6. 16 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimAppPermissionUpdateRespVO.java
  7. 15 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimLoginReqVo.java
  8. 13 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimLogoutReqVo.java
  9. 18 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimRespException.java
  10. 23 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimRespVo.java
  11. 17 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckItemReqVO.java
  12. 20 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckItemRespVO.java
  13. 17 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckReqVO.java
  14. 15 0
      src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckRespVO.java
  15. 0 32
      src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckReqContentVO.java
  16. 0 16
      src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckReqVO.java
  17. 0 26
      src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckRespContentVO.java
  18. 0 17
      src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckRespVO.java

+ 111 - 0
src/main/java/com/dragoninfo/dcuc/authweb/business/BimBusiness.java

@@ -0,0 +1,111 @@
+package com.dragoninfo.dcuc.authweb.business;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpRequest;
+import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimLoginReqVo;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimLogoutReqVo;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimRespVo;
+import com.dragonsoft.duceap.commons.util.json.JsonUtils;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Slf4j
+@Service
+public class BimBusiness {
+
+    static Cache<String, String> cache = CacheBuilder.newBuilder()
+            .expireAfterWrite(9, TimeUnit.MINUTES).build();
+
+    public static final String TOKEN_CACHE_KEY = "token";
+
+    @Autowired
+    private DcucAuthWebConfig dcucAuthWebConfig;
+
+    /**
+     * 获取 token
+     *
+     * @return token
+     */
+    public String loginToken() {
+
+        String url = dcucAuthWebConfig.getBimUrl() + "/api/rest/management/ExtApiMgmtAuthService/login";
+
+        BimLoginReqVo bimLoginReqVo = new BimLoginReqVo();
+        bimLoginReqVo.setLoginId(dcucAuthWebConfig.getBimLoginId());
+        bimLoginReqVo.setSecretKey(dcucAuthWebConfig.getBimSecretKey());
+
+        String requestJson = JsonUtils.toJSONString(bimLoginReqVo);
+        log.debug("Bim login request:{}", requestJson);
+        String respJson = HttpRequest.post(url)
+                .body(requestJson)
+                .execute()
+                .body();
+        log.debug("Bim login respJson:{}", respJson);
+
+        BimRespVo bimRespVo = JsonUtils.parseObject(respJson, BimRespVo.class);
+        if (!bimRespVo.getSuccess()) {
+            log.error("Bim login token error :{}", respJson);
+            return "";
+        }
+
+        String token = (String) bimRespVo.getData();
+        cache.put(TOKEN_CACHE_KEY, token);
+        return token;
+    }
+
+    /**
+     * 注销 token
+     */
+    public void logoutToken() {
+
+        String token = cache.getIfPresent(TOKEN_CACHE_KEY);
+        if (StrUtil.isBlank(token)) {
+            log.error("Token is not cache");
+        }
+
+        String url = dcucAuthWebConfig.getBimUrl() + "/api/rest/management/ExtApiMgmtAuthService/logout";
+
+        BimLogoutReqVo bimLogoutReqVo = new BimLogoutReqVo();
+        bimLogoutReqVo.setToken(token);
+
+        String requestJson = JsonUtils.toJSONString(bimLogoutReqVo);
+        log.debug("Bim logout requestJson:{}", requestJson);
+        String respJson = HttpRequest.post(url)
+                .body(requestJson)
+                .execute()
+                .body();
+        log.debug("Bim logout respJson:{}", respJson);
+
+        BimRespVo bimRespVo = JsonUtils.parseObject(respJson, BimRespVo.class);
+        if (!bimRespVo.getSuccess()) {
+            log.error("Bim logout token error :{}", respJson);
+        }
+    }
+
+    /**
+     * 获取 token
+     *
+     * @return token
+     */
+    public String getToken() {
+        String token = cache.getIfPresent(TOKEN_CACHE_KEY);
+        if (StrUtil.isBlank(token)) {
+            // 先注销token
+            logoutToken();
+            // 再获取token
+            token = loginToken();
+        }
+        return token;
+    }
+
+}

+ 31 - 34
src/main/java/com/dragoninfo/dcuc/authweb/business/HwIdentityBusiness.java

@@ -3,12 +3,11 @@ package com.dragoninfo.dcuc.authweb.business;
 import cn.hutool.http.HttpRequest;
 import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
 import com.dragoninfo.dcuc.authweb.enums.HwTokenResultEnum;
-import com.dragoninfo.dcuc.authweb.vo.hwtoken.HwTokenCheckReqContentVO;
-import com.dragoninfo.dcuc.authweb.vo.hwtoken.HwTokenCheckReqVO;
-import com.dragoninfo.dcuc.authweb.vo.hwtoken.HwTokenCheckRespContentVO;
-import com.dragoninfo.dcuc.authweb.vo.hwtoken.HwTokenCheckRespVO;
-import com.dragonsoft.duceap.commons.util.date.DateConst;
-import com.dragonsoft.duceap.commons.util.date.DateUtils;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimTokenCheckItemReqVO;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimTokenCheckItemRespVO;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimTokenCheckReqVO;
+import com.dragoninfo.dcuc.authweb.vo.bim.BimTokenCheckRespVO;
+import com.dragonsoft.duceap.commons.util.UUIDUtils;
 import com.dragonsoft.duceap.commons.util.json.JsonUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,31 +35,30 @@ public class HwIdentityBusiness {
      * @return 是否有效
      */
     public boolean checkToken(String userToken, String appToken) {
+        String messageId = UUIDUtils.getUUID();
 
-        HwTokenCheckReqVO hwTokenCheckReqVO = new HwTokenCheckReqVO();
+        BimTokenCheckItemReqVO bimTokenCheckItemReqVO = new BimTokenCheckItemReqVO();
+        bimTokenCheckItemReqVO.setMessageId(messageId);
+        bimTokenCheckItemReqVO.setUserToken(userToken);
+        bimTokenCheckItemReqVO.setAppToken(appToken);
 
-        HwTokenCheckReqContentVO hwTokenCheckReqContentVO = new HwTokenCheckReqContentVO();
-        hwTokenCheckReqContentVO.setAppToken(appToken);
-        hwTokenCheckReqContentVO.setUserToken(userToken);
-        hwTokenCheckReqContentVO.setMessageId(DateUtils.getDateFormat(DateConst.DB_STORE_DATE));
-        hwTokenCheckReqContentVO.setEsn(dcucAuthWebConfig.getHwIdentityEsn());
-
-        hwTokenCheckReqVO.setContent(Collections.singletonList(hwTokenCheckReqContentVO));
+        BimTokenCheckReqVO bimTokenCheckReqVO = new BimTokenCheckReqVO();
+        bimTokenCheckReqVO.setContent(Collections.singletonList(bimTokenCheckItemReqVO));
 
-        HwTokenCheckRespVO hwTokenCheckRespVO = sendRequest(hwTokenCheckReqVO);
+        BimTokenCheckRespVO hwTokenCheckRespVO = sendRequest(bimTokenCheckReqVO);
 
-        List<HwTokenCheckRespContentVO> content = hwTokenCheckRespVO.getContent();
+        List<BimTokenCheckItemRespVO> content = hwTokenCheckRespVO.getContent();
 
         String validValue = HwTokenResultEnum.VALID.getValue();
-        for (HwTokenCheckRespContentVO hwTokenCheckRespContentVO : content) {
-            String usercheckResult = hwTokenCheckRespContentVO.getUsercheckResult();
-            String appcheckResult = hwTokenCheckRespContentVO.getAppcheckResult();
+        for (BimTokenCheckItemRespVO hwTokenCheckRespContentVO : content) {
+            String userCheckResult = hwTokenCheckRespContentVO.getUserCheckResult();
+            String appCheckResult = hwTokenCheckRespContentVO.getAppCheckResult();
 
-            if (!usercheckResult.equals(validValue)) {
+            if (!userCheckResult.equals(validValue)) {
                 return false;
             }
 
-            if (!appcheckResult.equals(validValue)) {
+            if (!appCheckResult.equals(validValue)) {
                 return false;
             }
         }
@@ -75,26 +73,26 @@ public class HwIdentityBusiness {
      * @return 是否有效
      */
     public boolean checkUserToken(String userToken) {
+        String messageId = UUIDUtils.getUUID();
 
-        HwTokenCheckReqVO hwTokenCheckReqVO = new HwTokenCheckReqVO();
+        BimTokenCheckReqVO hwTokenCheckReqVO = new BimTokenCheckReqVO();
 
-        HwTokenCheckReqContentVO hwTokenCheckReqContentVO = new HwTokenCheckReqContentVO();
+        BimTokenCheckItemReqVO hwTokenCheckReqContentVO = new BimTokenCheckItemReqVO();
         hwTokenCheckReqContentVO.setAppToken("");
         hwTokenCheckReqContentVO.setUserToken(userToken);
-        hwTokenCheckReqContentVO.setMessageId(DateUtils.getDateFormat(DateConst.DB_STORE_DATE));
-        hwTokenCheckReqContentVO.setEsn(dcucAuthWebConfig.getHwIdentityEsn());
+        hwTokenCheckReqContentVO.setMessageId(messageId);
 
         hwTokenCheckReqVO.setContent(Collections.singletonList(hwTokenCheckReqContentVO));
 
-        HwTokenCheckRespVO hwTokenCheckRespVO = sendRequest(hwTokenCheckReqVO);
+        BimTokenCheckRespVO hwTokenCheckRespVO = sendRequest(hwTokenCheckReqVO);
 
-        List<HwTokenCheckRespContentVO> content = hwTokenCheckRespVO.getContent();
+        List<BimTokenCheckItemRespVO> content = hwTokenCheckRespVO.getContent();
 
         String validValue = HwTokenResultEnum.VALID.getValue();
-        for (HwTokenCheckRespContentVO hwTokenCheckRespContentVO : content) {
-            String usercheckResult = hwTokenCheckRespContentVO.getUsercheckResult();
+        for (BimTokenCheckItemRespVO hwTokenCheckRespContentVO : content) {
+            String userCheckResult = hwTokenCheckRespContentVO.getUserCheckResult();
 
-            if (!usercheckResult.equals(validValue)) {
+            if (!userCheckResult.equals(validValue)) {
                 return false;
             }
         }
@@ -108,21 +106,20 @@ public class HwIdentityBusiness {
      * @param hwTokenCheckReqVO 请求
      * @return 返回值
      */
-    private HwTokenCheckRespVO sendRequest(HwTokenCheckReqVO hwTokenCheckReqVO) {
+    private BimTokenCheckRespVO sendRequest(BimTokenCheckReqVO hwTokenCheckReqVO) {
         String reqJson = JsonUtils.toJSONString(hwTokenCheckReqVO);
 
         log.info("Token check req :{}", reqJson);
 
-        String url = dcucAuthWebConfig.getHwIdentityUrl() + "/tacs/tokencheck";
+        String url = dcucAuthWebConfig.getBimUrl() + "/api/rest/customization/ExpApiCustomDragonitService/tokenCheck";
 
         log.info("Token check req url:{}", reqJson);
         String postResp = HttpRequest.post(url)
                 .body(reqJson)
-                .header("Message-Type", "tokencheck")
                 .execute()
                 .body();
         log.info("Token check resp :{}", postResp);
 
-        return JsonUtils.parseObject(postResp, HwTokenCheckRespVO.class);
+        return JsonUtils.parseObject(postResp, BimTokenCheckRespVO.class);
     }
 }

+ 14 - 6
src/main/java/com/dragoninfo/dcuc/authweb/config/DcucAuthWebConfig.java

@@ -25,17 +25,25 @@ public class DcucAuthWebConfig {
     private boolean authAccess;
 
     /**
-     * 华为认证地址
+     * 凭据鉴权类型
      */
-    private String hwIdentityUrl;
+    private CheckTypeEnum checkTypeEnum = CheckTypeEnum.TOKEN;
 
     /**
-     * 注册在华为认证,权限的唯一标识,与注册接口保持一致,不能为其他值
+     * 竹云认证URL
      */
-    private String hwIdentityEsn;
+    private String bimUrl;
 
     /**
-     * 凭据鉴权类型
+     * 竹云应用方标识
      */
-    private CheckTypeEnum checkTypeEnum = CheckTypeEnum.TOKEN;
+    private String bimLoginId;
+
+
+    /**
+     * 竹云调用方密钥
+     */
+    private String bimSecretKey;
+
+
 }

+ 5 - 1
src/main/java/com/dragoninfo/dcuc/authweb/enums/HwTokenResultEnum.java

@@ -11,7 +11,11 @@ public enum HwTokenResultEnum implements ICodeEnum {
     /**
      * 有效
      */
-    VALID("valid", "有效");
+    VALID("valid", "有效"),
+    /**
+     * 无效
+     */
+    INVALID("invalid", "无效");
 
     private String value;
 

+ 32 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimAppPermissionUpdateReqVO.java

@@ -0,0 +1,32 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 应用权限变更通知请求
+ *
+ * @author huangzqa
+ * @date 2021/4/6
+ **/
+@Data
+public class BimAppPermissionUpdateReqVO {
+
+    /**
+     * 消息ID
+     */
+    private String messageId;
+
+    /**
+     * token
+     */
+    private String token;
+
+    /**
+     * 变更的用户令牌
+     */
+    private List<String> userTokens;
+
+
+}

+ 16 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimAppPermissionUpdateRespVO.java

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

+ 15 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimLoginReqVo.java

@@ -0,0 +1,15 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimLoginReqVo {
+
+    private String loginId;
+
+    private String secretKey;
+}

+ 13 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimLogoutReqVo.java

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

+ 18 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimRespException.java

@@ -0,0 +1,18 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimRespException {
+
+    private String name;
+
+    private String message;
+
+    private String trace;
+
+}

+ 23 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimRespVo.java

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

+ 17 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckItemReqVO.java

@@ -0,0 +1,17 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimTokenCheckItemReqVO {
+
+    private String messageId;
+
+    private String userToken;
+
+    private String appToken;
+}

+ 20 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckItemRespVO.java

@@ -0,0 +1,20 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimTokenCheckItemRespVO {
+
+    private String userCheckResult;
+
+    private String appCheckResult;
+
+    private String messageId;
+
+    private String resultDescription;
+
+}

+ 17 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckReqVO.java

@@ -0,0 +1,17 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimTokenCheckReqVO {
+
+    private String token;
+
+    private List<BimTokenCheckItemReqVO> content;
+}

+ 15 - 0
src/main/java/com/dragoninfo/dcuc/authweb/vo/bim/BimTokenCheckRespVO.java

@@ -0,0 +1,15 @@
+package com.dragoninfo.dcuc.authweb.vo.bim;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author huangzqa
+ * @date 2021/4/9
+ **/
+@Data
+public class BimTokenCheckRespVO {
+
+    private List<BimTokenCheckItemRespVO> content;
+}

+ 0 - 32
src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckReqContentVO.java

@@ -1,32 +0,0 @@
-package com.dragoninfo.dcuc.authweb.vo.hwtoken;
-
-import lombok.Data;
-
-/**
- * @author huangzqa
- * @date 2021/3/30
- **/
-@Data
-public class HwTokenCheckReqContentVO {
-
-    /**
-     * 消息ID,默认规则为日期
-     */
-    private String messageId;
-
-    /**
-     * 用户令牌
-     */
-    private String userToken;
-
-    /**
-     * 应用令牌
-     */
-    private String appToken;
-
-    /**
-     * 可信接入唯一标识,与注册接口保持一致,不能为其他值
-     */
-    private String esn;
-
-}

+ 0 - 16
src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckReqVO.java

@@ -1,16 +0,0 @@
-package com.dragoninfo.dcuc.authweb.vo.hwtoken;
-
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author huangzqa
- * @date 2021/3/30
- **/
-@Data
-public class HwTokenCheckReqVO {
-
-    private List<HwTokenCheckReqContentVO> content;
-
-}

+ 0 - 26
src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckRespContentVO.java

@@ -1,26 +0,0 @@
-package com.dragoninfo.dcuc.authweb.vo.hwtoken;
-
-import lombok.Data;
-
-/**
- * @author huangzqa
- * @date 2021/3/30
- **/
-@Data
-public class HwTokenCheckRespContentVO {
-
-    private String messageId;
-
-    /**
-     * 用户令牌是否有效
-     */
-    private String usercheckResult;
-
-    /**
-     * 应用令牌是否有效
-     */
-    private String appcheckResult;
-
-    private String resultDescription;
-
-}

+ 0 - 17
src/main/java/com/dragoninfo/dcuc/authweb/vo/hwtoken/HwTokenCheckRespVO.java

@@ -1,17 +0,0 @@
-package com.dragoninfo.dcuc.authweb.vo.hwtoken;
-
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author huangzqa
- * @date 2021/3/30
- **/
-@Data
-public class HwTokenCheckRespVO {
-
-
-    private List<HwTokenCheckRespContentVO> content;
-
-}