Bladeren bron

修改采集器证书路径

lhy 10 maanden geleden
bovenliggende
commit
8db4e1708d

+ 2 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/CollectorServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -46,6 +47,7 @@ public class CollectorServiceImpl implements CollectorService {
     @Autowired
     private UserUtil userUtil;
 
+    @Resource
     private OpcuaClientConfig opcuaClientConfig;
 
     @Override

+ 17 - 8
industry-system/industry-da/src/main/java/com/example/opc_da/validate/dataSource/KeyStoreLoader.java

@@ -68,14 +68,8 @@ public class KeyStoreLoader {
         // 获取对应别名的证书对象。
         clientCertificate = (X509Certificate) keyStore.getCertificate(certificateAlias);
 
-        StringWriter sw = new StringWriter();
-        try (JcaPEMWriter pemWriter = new JcaPEMWriter(sw)) {
-            pemWriter.writeObject(clientCertificate);
-        }
-        String pemString = sw.toString();
-        String path = getCertificatePemPath(serverKeyStore.toFile().getAbsolutePath());
-        FileUtil.writeUtf8String(pemString, path);
-
+        // 生成证书
+        encodeCertificateToPem(clientCertificate, serverKeyStore);
         // 获取公钥
         PublicKey serverPublicKey = clientCertificate.getPublicKey();
 
@@ -155,6 +149,21 @@ public class KeyStoreLoader {
         FileUtil.writeUtf8String(stringWriter.toString(), path);
     }
 
+
+
+    private void encodeCertificateToPem(X509Certificate clientCertificate,Path serverKeyStore) throws IOException {
+        String path = getCertificatePemPath(serverKeyStore.toFile().getAbsolutePath());
+        if(FileUtil.exist(path)){
+            return;
+        }
+        StringWriter sw = new StringWriter();
+        try (JcaPEMWriter pemWriter = new JcaPEMWriter(sw)) {
+            pemWriter.writeObject(clientCertificate);
+        }
+        String pemString = sw.toString();
+        FileUtil.writeUtf8String(pemString, path);
+    }
+
     private void encodePublicKeyToPem(PublicKey publicKey,Path serverKeyStore) {
         String path = getPublicPemPath(serverKeyStore.toFile().getAbsolutePath());
         if(FileUtil.exist(path)){

BIN
industry-system/industry-da/src/main/resources/static/cy-collector.7z


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

@@ -127,8 +127,14 @@ 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=\"").append(item.getStr("securityPolicy")).append("\"\n")
-                .append("security_mode=\"").append(item.getStr("securityMode")).append("\"\n");
+                .append("security_policy=\"").append(item.getStr("securityPolicy","auto")).append("\"\n")
+                .append("security_mode=\"").append(item.getStr("securityMode","auto")).append("\"\n")
+                .append("certificate=\"").append(
+                        replaceSlash(item.getStr("certificate",""))
+                ).append("\"\n")
+                .append("private_key=\"").append(
+                        replaceSlash(item.getStr("private_key",""))
+                ).append("\"\n");
         Integer identityProvider = item.getInt("identityProvider");
         if (identityProvider == 0) {
             builder.append("auth_method=\"Anonymous\"\n");
@@ -174,6 +180,16 @@ public class ConfUtil {
         return value;
     }
 
+    private static String replaceSlash(String value){
+        if(StrUtil.isEmpty(value)){
+            return "";
+        }
+        if(!value.contains("\\")){
+            return value;
+        }
+        value = value.replace("\\\\","\\").replace("\\","/");
+        return value;
+    }
 
 
     private static String createOpcUaFast(JSONObject item) {
@@ -184,8 +200,14 @@ 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=\"").append(item.getStr("securityPolicy")).append("\"\n")
-                .append("security_mode=\"").append(item.getStr("securityMode")).append("\"\n");
+                .append("security_policy=\"").append(item.getStr("securityPolicy","auto")).append("\"\n")
+                .append("security_mode=\"").append(item.getStr("securityMode","auto")).append("\"\n")
+                .append("certificate=\"").append(
+                        replaceSlash(item.getStr("certificate",""))
+                ).append("\"\n")
+                .append("private_key=\"").append(
+                        replaceSlash(item.getStr("private_key",""))
+                ).append("\"\n");
         Integer identityProvider = item.getInt("identityProvider");
         if (identityProvider == 0) {
             builder.append("auth_method=\"Anonymous\"\n");