Răsfoiți Sursa

1、数据源添加安全模式、安全策略属性
2、采集器配置文件判断安全模式、安全策略属性

lhy 11 luni în urmă
părinte
comite
51f006c853

+ 30 - 4
industry-system/cqcy-ei-common/src/main/java/com/example/opc_common/util/ClientInfoUtil.java

@@ -1,14 +1,12 @@
 package com.example.opc_common.util;
 
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import com.example.opc_common.entity.Collector;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 public class ClientInfoUtil {
@@ -90,6 +88,34 @@ public class ClientInfoUtil {
                 item.set("port", dataSource.get("ipPort"));
                 Integer identityProvider = Convert.toInt(dataSource.get("identityProvider"), 0);
                 item.set("identityProvider", identityProvider);
+                // 安全模式1None,2Sign,3SignAndEncrypt
+                String securityMode = Convert.toStr(dataSource.get("securityMode"),"");
+                switch (securityMode){
+                    case "1":
+                        securityMode = "None";
+                        break;
+                    case "2":
+                        securityMode = "Sign";
+                        break;
+                    case "3":
+                        securityMode = "SignAndEncrypt";
+                        break;
+                    default:
+                        securityMode = "auto";
+                        break;
+                }
+                item.set("securityMode", securityMode);
+                String securityPolicy = Convert.toStr(dataSource.get("securityPolicy"));
+                if(StrUtil.isEmpty(securityPolicy) || !securityPolicy.contains("#")){
+                    securityPolicy = "auto";
+                }else{
+                    securityPolicy = securityPolicy.substring(securityPolicy.lastIndexOf("#") + 1);
+                    String[] arr = new String[]{"None", "Basic128Rsa15", "Basic256","Basic256Sha256", "auto"};
+                    if(!Arrays.asList(arr).contains(securityPolicy)){
+                        securityPolicy = "auto";
+                    }
+                }
+                item.set("securityPolicy", securityPolicy);
                 if (identityProvider == 1) {
                     item.set("userName", dataSource.get("userName"));
                     try {

+ 3 - 1
industry-system/industry-da/src/main/resources/mapper/CollectorDao.xml

@@ -131,7 +131,9 @@
     <!--获取所有数据源-->
     <select id="getAllDataSource" resultType="java.util.Map">
         SELECT tds.id, tds.ip_address ipAddress, tds.ip_port ipPort, tds.prog_id progId, tdst.data_source_type_key typeKey, tds.slave_id slaveId,
-               tds.identity_provider identityProvider, tds.ip_user_name userName, tds.ip_password ipPassword, tds.subscribe FROM t_data_source tds
+               tds.identity_provider identityProvider, tds.ip_user_name userName, tds.ip_password ipPassword, tds.subscribe,
+               tds.security_mode securityMode,tds.security_policy securityPolicy
+        FROM t_data_source tds
         LEFT JOIN t_data_source_type tdst ON tds.type_id = tdst.id
     </select>
 

+ 6 - 6
新采集器/fast-api/src/main/java/com/ws/fastapi/util/ConfUtil.java

@@ -127,8 +127,8 @@ public class ConfUtil {
                 .append("endpoint=\"opc.tcp://").append(item.getStr("ip")).append(":").append(item.getStr("port")).append("\"\n")
                 .append("connect_timeout=\"10s\"\n")
                 .append("request_timeout=\"5s\"\n")
-                .append("security_policy=\"auto\"\n")
-                .append("security_mode=\"auto\"\n");
+                .append("security_policy=\"").append(item.getStr("securityPolicy")).append("\"\n")
+                .append("security_mode=\"").append(item.getStr("securityMode")).append("\"\n");
         Integer identityProvider = item.getInt("identityProvider");
         if (identityProvider == 0) {
             builder.append("auth_method=\"Anonymous\"\n");
@@ -137,7 +137,7 @@ public class ConfUtil {
                     .append("username=\"").append(item.getStr("userName")).append("\"\n")
                     .append("password=\"").append(item.getStr("password")).append("\"\n");
         }
-        builder.append("timestamp=\"gather\"");
+        builder.append("timestamp=\"server\"\n");
         JSONArray array = item.getJSONArray("items");
         JSONObject obj;
         builder.append("nodes=[\n");
@@ -184,8 +184,8 @@ public class ConfUtil {
                 .append("subscription_interval=\"").append(item.getStr("interval")).append("\"\n")
                 .append("connect_timeout=\"10s\"\n")
                 .append("request_timeout=\"5s\"\n")
-                .append("security_policy=\"auto\"\n")
-                .append("security_mode=\"auto\"\n");
+                .append("security_policy=\"").append(item.getStr("securityPolicy")).append("\"\n")
+                .append("security_mode=\"").append(item.getStr("securityMode")).append("\"\n");
         Integer identityProvider = item.getInt("identityProvider");
         if (identityProvider == 0) {
             builder.append("auth_method=\"Anonymous\"\n");
@@ -194,7 +194,7 @@ public class ConfUtil {
                     .append("username=\"").append(item.getStr("userName")).append("\"\n")
                     .append("password=\"").append(item.getStr("password")).append("\"\n");
         }
-        builder.append("timestamp=\"gather\"");
+        builder.append("timestamp=\"server\"\n");
         JSONArray array = item.getJSONArray("items");
         JSONObject obj;
         builder.append("nodes=[\n");