From c51a042cfb8453265acf2b764b82bd17019b9b1b Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期一, 04 三月 2024 21:40:42 +0800 Subject: [PATCH] 增加厂商和使用部门维护功能 --- mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/opcua/KeyStoreLoader.java | 201 ++++++++++++++++++------------------------------- 1 files changed, 75 insertions(+), 126 deletions(-) diff --git a/mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/opcua/KeyStoreLoader.java b/mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/opcua/KeyStoreLoader.java index 0bdfe3b..3a0ab5c 100644 --- a/mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/opcua/KeyStoreLoader.java +++ b/mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/opcua/KeyStoreLoader.java @@ -1,128 +1,77 @@ -/* */ package com.qianwen.mdc.service.opcua; -/* */ -/* */ import java.io.InputStream; -/* */ import java.io.OutputStream; -/* */ import java.nio.file.Files; -/* */ import java.nio.file.Path; -/* */ import java.security.Key; -/* */ import java.security.KeyPair; -/* */ import java.security.KeyStore; -/* */ import java.security.PrivateKey; -/* */ import java.security.PublicKey; -/* */ import java.security.cert.Certificate; -/* */ import java.security.cert.X509Certificate; -/* */ import java.util.regex.Pattern; -/* */ import org.eclipse.milo.opcua.sdk.server.util.HostnameUtil; -/* */ import org.eclipse.milo.opcua.stack.core.util.SelfSignedCertificateBuilder; -/* */ import org.eclipse.milo.opcua.stack.core.util.SelfSignedCertificateGenerator; -/* */ import org.slf4j.Logger; -/* */ import org.slf4j.LoggerFactory; -/* */ import org.springframework.stereotype.Component; -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ @Component -/* */ public class KeyStoreLoader -/* */ { -/* */ public com.qianwen.mdc.service.opcua.KeyStoreLoader load(Path baseDir) throws Exception { -/* 35 */ KeyStore keyStore = KeyStore.getInstance("PKCS12"); -/* */ -/* */ -/* */ -/* 39 */ Path serverKeyStore = baseDir.resolve("opcua-client.pfx"); -/* */ -/* 41 */ this.logger.info("Loading KeyStore at {}", serverKeyStore); -/* */ -/* */ -/* 44 */ if (!Files.exists(serverKeyStore, new java.nio.file.LinkOption[0])) { -/* 45 */ keyStore.load(null, PASSWORD); -/* */ -/* */ -/* 48 */ KeyPair keyPair = SelfSignedCertificateGenerator.generateRsaKeyPair(2048); -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* */ -/* 61 */ SelfSignedCertificateBuilder builder = (new SelfSignedCertificateBuilder(keyPair)).setCommonName("mdc").setOrganization("hx").setOrganizationalUnit("Kx").setLocalityName("Terran").setStateName("Shanghai").setCountryCode("CN").setApplicationUri("urn:eclipse:milo:examples:client").addDnsName("localhost").addIpAddress("127.0.0.1"); -/* */ -/* */ -/* 64 */ for (String hostname : HostnameUtil.getHostnames("0.0.0.0")) { -/* 65 */ if (IP_ADDR_PATTERN.matcher(hostname).matches()) { -/* 66 */ builder.addIpAddress(hostname); continue; -/* */ } -/* 68 */ builder.addDnsName(hostname); -/* */ } -/* */ -/* */ -/* 72 */ X509Certificate certificate = builder.build(); -/* */ -/* */ -/* 75 */ keyStore.setKeyEntry("hx-mdc", keyPair.getPrivate(), PASSWORD, (Certificate[])new X509Certificate[] { certificate }); -/* 76 */ try (OutputStream out = Files.newOutputStream(serverKeyStore, new java.nio.file.OpenOption[0])) { -/* */ -/* 78 */ keyStore.store(out, PASSWORD); -/* */ } -/* */ } else { -/* 81 */ try (InputStream in = Files.newInputStream(serverKeyStore, new java.nio.file.OpenOption[0])) { -/* */ -/* 83 */ keyStore.load(in, PASSWORD); -/* */ } -/* */ } -/* */ -/* */ -/* 88 */ Key serverPrivateKey = keyStore.getKey("hx-mdc", PASSWORD); -/* 89 */ if (serverPrivateKey instanceof PrivateKey) { -/* */ -/* 91 */ this.clientCertificate = (X509Certificate)keyStore.getCertificate("hx-mdc"); -/* */ -/* 93 */ PublicKey serverPublicKey = this.clientCertificate.getPublicKey(); -/* */ -/* 95 */ this.clientKeyPair = new KeyPair(serverPublicKey, (PrivateKey)serverPrivateKey); -/* */ } -/* */ -/* 98 */ return this; -/* */ } -/* */ -/* */ -/* */ public X509Certificate getClientCertificate() { -/* 103 */ return this.clientCertificate; -/* */ } -/* */ -/* */ -/* */ public KeyPair getClientKeyPair() { -/* 108 */ return this.clientKeyPair; -/* */ } -/* */ -/* */ -/* 112 */ private static final Pattern IP_ADDR_PATTERN = Pattern.compile("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); -/* */ -/* */ -/* */ private static final String CLIENT_ALIAS = "hx-mdc"; -/* */ -/* 117 */ private static final char[] PASSWORD = "12345678".toCharArray(); -/* */ -/* 119 */ private final Logger logger = LoggerFactory.getLogger(getClass()); -/* */ private X509Certificate clientCertificate; -/* */ private KeyPair clientKeyPair; -/* */ } +package com.qianwen.mdc.service.opcua; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.Key; +import java.security.KeyPair; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.cert.Certificate; +import java.security.cert.X509Certificate; +import java.util.regex.Pattern; +import org.eclipse.milo.opcua.sdk.server.util.HostnameUtil; +import org.eclipse.milo.opcua.stack.core.util.SelfSignedCertificateBuilder; +import org.eclipse.milo.opcua.stack.core.util.SelfSignedCertificateGenerator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; -/* Location: D:\yangys\mdm\鑰佷唬鐮乗mdcplugin\mdc-plugin-0.0.1-SNAPSHOT-鍒犻櫎lib.jar!\BOOT-INF\classes\cn\net\hx\mdc\service\opcua\KeyStoreLoader.class - * Java compiler version: 8 (52.0) - * JD-Core Version: 1.1.3 - */ \ No newline at end of file +@Component +public class KeyStoreLoader { + public KeyStoreLoader load(Path baseDir) throws Exception { + KeyStore keyStore = KeyStore.getInstance("PKCS12"); + Path serverKeyStore = baseDir.resolve("opcua-client.pfx"); + this.logger.info("Loading KeyStore at {}", serverKeyStore); + if (!Files.exists(serverKeyStore, new java.nio.file.LinkOption[0])) { + keyStore.load(null, PASSWORD); + KeyPair keyPair = SelfSignedCertificateGenerator.generateRsaKeyPair(2048); + SelfSignedCertificateBuilder builder = (new SelfSignedCertificateBuilder(keyPair)).setCommonName("mdc").setOrganization("hx").setOrganizationalUnit("Kx").setLocalityName("Terran").setStateName("Shanghai").setCountryCode("CN").setApplicationUri("urn:eclipse:milo:examples:client").addDnsName("localhost").addIpAddress("127.0.0.1"); + for (String hostname : HostnameUtil.getHostnames("0.0.0.0")) { + if (IP_ADDR_PATTERN.matcher(hostname).matches()) { + builder.addIpAddress(hostname); + continue; + } + builder.addDnsName(hostname); + } + X509Certificate certificate = builder.build(); + keyStore.setKeyEntry("hx-mdc", keyPair.getPrivate(), PASSWORD, (Certificate[])new X509Certificate[] { certificate }); + try (OutputStream out = Files.newOutputStream(serverKeyStore, new java.nio.file.OpenOption[0])) { + keyStore.store(out, PASSWORD); + } + } else { + try (InputStream in = Files.newInputStream(serverKeyStore, new java.nio.file.OpenOption[0])) { + keyStore.load(in, PASSWORD); + } + } + Key serverPrivateKey = keyStore.getKey("hx-mdc", PASSWORD); + if (serverPrivateKey instanceof PrivateKey) { + this.clientCertificate = (X509Certificate)keyStore.getCertificate("hx-mdc"); + PublicKey serverPublicKey = this.clientCertificate.getPublicKey(); + this.clientKeyPair = new KeyPair(serverPublicKey, (PrivateKey)serverPrivateKey); + } + return this; + } + + public X509Certificate getClientCertificate() { + return this.clientCertificate; + } + + public KeyPair getClientKeyPair() { + return this.clientKeyPair; + } + + private static final Pattern IP_ADDR_PATTERN = Pattern.compile("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); + + private static final String CLIENT_ALIAS = "hx-mdc"; + + private static final char[] PASSWORD = "12345678".toCharArray(); + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + private X509Certificate clientCertificate; + + private KeyPair clientKeyPair; +} -- Gitblit v1.9.3