dengsixing 1 年間 前
コミット
62dc69decc

+ 5 - 0
pom.xml

@@ -121,6 +121,11 @@
             <version>1.5.36</version>
         </dependency>
 
+<!--        <dependency>-->
+<!--            <groupId>com.chinatower</groupId>-->
+<!--            <artifactId>chinatower-encrypt</artifactId>-->
+<!--            <version>1.6</version>-->
+<!--        </dependency>-->
 
     </dependencies>
 

ファイルの差分が大きいため隠しています
+ 1 - 1
src/main/java/com/fdkankan/common/ThreeDESUtil.java


+ 2 - 2
src/main/java/com/fdkankan/feign/WS4AServiceClient.java

@@ -17,9 +17,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 public interface WS4AServiceClient {
 
     @PostMapping(path = "/WS4A/token/checkProwadaToken", produces = MediaType.APPLICATION_JSON_VALUE)
-    ProcessResult checkProwadaToken(@RequestBody JSONObject args);
+    JSONObject checkProwadaToken(@RequestBody JSONObject args);
 
     @PostMapping(path = "/WS4A/token/createProwadaToken", produces = MediaType.APPLICATION_JSON_VALUE)
-    ProcessResult createProwadaToken(@RequestBody JSONObject args);
+    JSONObject createProwadaToken(@RequestBody JSONObject args);
 
 }

+ 35 - 5
src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -5,8 +5,11 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chinatower.framework.common_service.response.ProcessResult;
 import com.fdkankan.common.ErrorCode;
+import com.fdkankan.common.ThreeDESUtil;
 import com.fdkankan.feign.TietaFeignClient;
+import com.fdkankan.feign.WS4AServiceClient;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisClient;
 import com.fdkankan.scene.bean.ResultData;
@@ -18,6 +21,8 @@ import com.fdkankan.scene.service.SceneService;
 import com.fdkankan.scene.vo.SceneEditControlsVO;
 import com.fdkankan.scene.vo.SceneInfoParamVO;
 import com.fdkankan.scene.vo.SceneInfoVO;
+import io.grpc.netty.shaded.io.netty.util.internal.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -36,6 +41,7 @@ import java.util.stream.Collectors;
  * @author dsx
  * @since 2024-06-26
  */
+@Slf4j
 @Service
 public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements SceneService {
 
@@ -44,7 +50,8 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
 
     @Value("${tieta.checkToken.syscode}")
     private String syscode;
-    @Value("${}")
+    @Value("${gateway.key:6#dPz>3F}")
+    private String gatewayKey;
 
     @Autowired
     private SceneFileMappingService sceneFileMappingService;
@@ -52,6 +59,8 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
     private RedisClient redisClient;
     @Resource
     private TietaFeignClient tietaFeignClient;
+    @Autowired
+    private WS4AServiceClient ws4AServiceClient;
 
     @Override
     public ResultData getSceneInfo(SceneInfoParamVO param) throws Exception {
@@ -59,15 +68,25 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
         String token = param.getToken();
         String acctId = param.getAcctId();
 
+        JSONObject checkProwadaTokenParam = new JSONObject();
         JSONObject params = new JSONObject();
         params.put("SYSCODE", syscode);
         params.put("ACCTID", acctId);
         params.put("TOKEN", token);
 
-//        JSONObject result = tietaFeignClient.checkProwadaTokenMicro(params);
-//        if(!"0".equals(result.get("RSP"))){
-//            return ResultData.error(4000, (String) result.get("ERRDESC"));
-//        }
+        String encode = ThreeDESUtil.encode(JSON.toJSONString(params), gatewayKey);
+        checkProwadaTokenParam.put("args", encode);
+
+        JSONObject result = ws4AServiceClient.checkProwadaToken(checkProwadaTokenParam);
+        log.info("场景:{},4A校验token结果:{}", param.getNum(), result);
+        if("success".equals(result.getString("SUCCESS"))){
+            return ResultData.error(4000, "4A鉴权失败");
+        }
+        String data = result.getString("data");
+        JSONObject dataObj = JSONObject.parseObject(data);
+        if(!"0".equals(dataObj.getString("RSP"))){
+            return ResultData.error(4000, dataObj.getString("ERRDESC"));
+        }
 
         String num = param.getNum();
         SceneInfoVO sceneInfoVO = null;
@@ -106,4 +125,15 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
 
         return ResultData.ok(sceneInfoVO);
     }
+
+    public static void main(String[] args) {
+        JSONObject params = new JSONObject();
+        params.put("SYSCODE", "aaa");
+        params.put("ACCTID", "bbbbb");
+        params.put("TOKEN", "cccc");
+
+        String encode = ThreeDESUtil.encode(params.toString(), "6#dPz>3F");
+        System.out.println(encode);
+
+    }
 }

+ 3 - 0
src/main/resources/application-dev.yml

@@ -25,6 +25,9 @@ redis:
 tlog:
   enable-invoke-time-print: true
 
+gateway:
+  url: http://10.180.22.22:8097
+