Parcourir la source

Merge branch 'huangzqa-new-version-20210404' into 'develop'

Huangzqa new version 20210404

See merge request dcuc-tjdsj/auth-back!6
黄资权 il y a 4 ans
Parent
commit
bc29fa6451

+ 0 - 128
src/main/java/com/dragoninfo/dcuc/authweb/business/HwIdentityBusiness.java

@@ -1,128 +0,0 @@
-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.dragonsoft.duceap.commons.util.json.JsonUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author huangzqa
- * @date 2021/3/30
- **/
-@Slf4j
-@Service
-public class HwIdentityBusiness {
-
-    @Autowired
-    private DcucAuthWebConfig dcucAuthWebConfig;
-
-    /**
-     * 校验令牌
-     *
-     * @param userToken 用户令牌
-     * @param appToken  应用令牌
-     * @return 是否有效
-     */
-    public boolean checkToken(String userToken, String appToken) {
-
-        HwTokenCheckReqVO hwTokenCheckReqVO = new HwTokenCheckReqVO();
-
-        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));
-
-        HwTokenCheckRespVO hwTokenCheckRespVO = sendRequest(hwTokenCheckReqVO);
-
-        List<HwTokenCheckRespContentVO> content = hwTokenCheckRespVO.getContent();
-
-        String validValue = HwTokenResultEnum.VALID.getValue();
-        for (HwTokenCheckRespContentVO hwTokenCheckRespContentVO : content) {
-            String usercheckResult = hwTokenCheckRespContentVO.getUsercheckResult();
-            String appcheckResult = hwTokenCheckRespContentVO.getAppcheckResult();
-
-            if (!usercheckResult.equals(validValue)) {
-                return false;
-            }
-
-            if (!appcheckResult.equals(validValue)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * 校验用户令牌
-     *
-     * @param userToken 用户令牌
-     * @return 是否有效
-     */
-    public boolean checkUserToken(String userToken) {
-
-        HwTokenCheckReqVO hwTokenCheckReqVO = new HwTokenCheckReqVO();
-
-        HwTokenCheckReqContentVO hwTokenCheckReqContentVO = new HwTokenCheckReqContentVO();
-        hwTokenCheckReqContentVO.setAppToken("");
-        hwTokenCheckReqContentVO.setUserToken(userToken);
-        hwTokenCheckReqContentVO.setMessageId(DateUtils.getDateFormat(DateConst.DB_STORE_DATE));
-        hwTokenCheckReqContentVO.setEsn(dcucAuthWebConfig.getHwIdentityEsn());
-
-        hwTokenCheckReqVO.setContent(Collections.singletonList(hwTokenCheckReqContentVO));
-
-        HwTokenCheckRespVO hwTokenCheckRespVO = sendRequest(hwTokenCheckReqVO);
-
-        List<HwTokenCheckRespContentVO> content = hwTokenCheckRespVO.getContent();
-
-        String validValue = HwTokenResultEnum.VALID.getValue();
-        for (HwTokenCheckRespContentVO hwTokenCheckRespContentVO : content) {
-            String usercheckResult = hwTokenCheckRespContentVO.getUsercheckResult();
-
-            if (!usercheckResult.equals(validValue)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * 发送请求
-     *
-     * @param hwTokenCheckReqVO 请求
-     * @return 返回值
-     */
-    private HwTokenCheckRespVO sendRequest(HwTokenCheckReqVO hwTokenCheckReqVO) {
-        String reqJson = JsonUtils.toJSONString(hwTokenCheckReqVO);
-
-        log.info("Token check req :{}", reqJson);
-
-        String url = dcucAuthWebConfig.getHwIdentityUrl() + "/tacs/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);
-    }
-}

+ 1 - 10
src/main/java/com/dragoninfo/dcuc/authweb/config/DcucAuthWebConfig.java

@@ -24,18 +24,9 @@ public class DcucAuthWebConfig {
      */
     private boolean authAccess;
 
-    /**
-     * 华为认证地址
-     */
-    private String hwIdentityUrl;
-
-    /**
-     * 注册在华为认证,权限的唯一标识,与注册接口保持一致,不能为其他值
-     */
-    private String hwIdentityEsn;
-
     /**
      * 凭据鉴权类型
      */
     private CheckTypeEnum checkTypeEnum = CheckTypeEnum.TOKEN;
+
 }

+ 0 - 35
src/main/java/com/dragoninfo/dcuc/authweb/enums/HwTokenResultEnum.java

@@ -1,35 +0,0 @@
-package com.dragoninfo.dcuc.authweb.enums;
-
-import com.dragonsoft.duceap.base.enums.ICodeEnum;
-
-/**
- * @author huangzqa
- * @date 2021/3/30
- **/
-public enum HwTokenResultEnum implements ICodeEnum {
-
-    /**
-     * 有效
-     */
-    VALID("valid", "有效");
-
-    private String value;
-
-    private String label;
-
-
-    HwTokenResultEnum(String value, String label) {
-        this.value = value;
-        this.label = label;
-    }
-
-    @Override
-    public String getValue() {
-        return this.value;
-    }
-
-    @Override
-    public String getLabel() {
-        return this.label;
-    }
-}

+ 3 - 3
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/AuthBeforeResInterceptor.java

@@ -2,7 +2,7 @@ package com.dragoninfo.dcuc.authweb.interceptor;
 
 import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
-import com.dragoninfo.dcuc.authweb.business.HwIdentityBusiness;
+import com.dragoninfo.dcuc.auth.auth.facade.IBimBusinessFacade;
 import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
 import com.dragoninfo.dcuc.authweb.enums.CheckTypeEnum;
 import com.dragoninfo.dcuc.authweb.exception.EvidenceException;
@@ -35,7 +35,7 @@ public class AuthBeforeResInterceptor implements HandlerInterceptor {
     private IApplyInfoFacade applyInfoFacade;
 
     @Autowired
-    private HwIdentityBusiness hwIdentityBusiness;
+    private IBimBusinessFacade bimBusinessFacade;
 
     @Autowired
     private DcucAuthWebConfig dcucAuthWebConfig;
@@ -93,7 +93,7 @@ public class AuthBeforeResInterceptor implements HandlerInterceptor {
                     throw new EvidenceException(HttpStatus.MULTIPLE_CHOICES.value(), "header参数不能为空");
                 }
 
-                return hwIdentityBusiness.checkToken(userToken, appToken);
+                return bimBusinessFacade.checkToken(userToken, appToken);
             }
         } else if (checkTypeEnum.equals(CheckTypeEnum.NONE)) {
             return true;

+ 14 - 6
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v1/controller/AuthServiceController.java

@@ -7,10 +7,10 @@ import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
 import com.dragoninfo.dcuc.auth.auth.dto.AppDataSensitiveLevelDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.ServiceAuthResultDTO;
+import com.dragoninfo.dcuc.auth.auth.facade.IBimBusinessFacade;
 import com.dragoninfo.dcuc.auth.auth.facade.IServiceAuthFacade;
 import com.dragoninfo.dcuc.auth.auth.facade.IServiceAuthResultFacade;
 import com.dragoninfo.dcuc.auth.auth.facade.IStaffAssignAuthInfoFacade;
-import com.dragoninfo.dcuc.authweb.business.HwIdentityBusiness;
 import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v1.vo.AppAuthRespVO;
 import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v1.vo.ServiceAuthResultVo;
 import com.dragoninfo.dcuc.authweb.util.VersionUtils;
@@ -66,14 +66,18 @@ public class AuthServiceController {
     private IUserFacade userFacade;
 
     @Autowired
-    private HwIdentityBusiness hwIdentityBusiness;
+    private IBimBusinessFacade bimBusinessFacade;
 
     @PostMapping(value = "apps/authentication")
     @ApiOperation(value = "应用级鉴权")
     @ApiImplicitParams({@ApiImplicitParam(name = "appsAuthenticationReq", value = "应用级鉴权VO")})
     public ApiResult appsAuthentication(@RequestHeader(Constants.DCUC_USER_TOKEN) String userToken) {
 
-        boolean checkUserToken = hwIdentityBusiness.checkUserToken(userToken);
+        if (StrUtil.isBlank(userToken)) {
+            return ApiResult.setFailMessage("请传入用户令牌");
+        }
+
+        boolean checkUserToken = bimBusinessFacade.checkUserToken(userToken);
 
         if (!checkUserToken) {
             return ApiResult.setFailMessage("用户令牌无效");
@@ -81,19 +85,23 @@ public class AuthServiceController {
 
         DecodedJWT decode = JWT.decode(userToken);
         String idcard = decode.getClaim("idCard").asString();
-        int iat = decode.getClaim("iat").asInt();
         int exp = decode.getClaim("exp").asInt();
+        int current = (int) (System.currentTimeMillis() / 1000);
 
-        int expAt = exp - iat;
+        int expAt = exp - current;
 
         log.info("UserToken:{} , idcard:{}, expAt:{}", userToken, idcard, expAt);
 
+        if (expAt < 0) {
+            return ApiResult.setFailMessage("令牌已失效");
+        }
+
         UserInfo userInfo = userFacade.detailBySfzh(idcard);
         if (userInfo == null) {
             return ApiResult.setFailMessage("用户不存在");
         }
 
-        staffAssignAuthInfoFacade.cacheUserToken(idcard, userToken, expAt);
+        bimBusinessFacade.cacheUserToken(idcard, userToken, expAt);
 
         String userId = userInfo.getId();
         List<AppDataSensitiveLevelDTO> appList = staffAssignAuthInfoFacade.getAppLitByUserId(userId);

+ 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;
-
-}

+ 0 - 2
src/main/resources/application-base.yml

@@ -71,6 +71,4 @@ dcuc:
   authweb:
     app-code: QXXT0000000000000001
     auth-access: true
-    hw-identity-url: http://localhost:8080
-    hw-identity-esn: demo
     check-type-enum: token