From d3ff2e3646ad1283a33caffce488475030335198 Mon Sep 17 00:00:00 2001 From: waner Date: Wed, 14 May 2025 14:25:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=8C=E5=96=84=E5=A4=9A=E6=9C=BA?= =?UTF-8?q?=E8=AF=81=E4=B9=A6=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 29 +++- src/main/java/com/Sample/TestCert.java | 84 +++++++++++ src/main/java/com/sunyard/SydApi.java | 2 +- .../java/com/sunyard/SydApiException.java | 10 ++ .../java/com/sunyard/snmp/SnmpTrapSender.java | 55 ++------ .../com/sunyard/task/AsyncTaskExecutor.java | 3 +- .../java/racal/sunyard/main/SydApi4j.java | 59 ++++---- src/test/java/SimpleTest.java | 2 +- .../com/sunyard/sydapi/test/CertTest.java | 2 +- src/test/java/sample/Test4NongxinCW.java | 133 ++++++++++++------ 10 files changed, 259 insertions(+), 120 deletions(-) create mode 100644 src/main/java/com/Sample/TestCert.java diff --git a/pom.xml b/pom.xml index 8955965..d0d8756 100644 --- a/pom.xml +++ b/pom.xml @@ -95,6 +95,33 @@ 2.13.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -231,7 +258,7 @@ - com.Sample.TestDemo + com.Sample.TestCert diff --git a/src/main/java/com/Sample/TestCert.java b/src/main/java/com/Sample/TestCert.java new file mode 100644 index 0000000..b3e4fe3 --- /dev/null +++ b/src/main/java/com/Sample/TestCert.java @@ -0,0 +1,84 @@ +package com.Sample; + +import cn.hutool.core.date.StopWatch; +import com.google.gson.Gson; +import racal.sunyard.main.SydApi4j; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TestCert { + public static void main(String[] args) throws InterruptedException { + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); + System.out.println("-----------start---------------"); + SydApi4j sydApi4j = new SydApi4j(); + String ipInfo = "/app/test/ipInfo.txt"; + String snmpInfo = "/app/test/snmp.txt"; + String certInfo = "/app/test/cert.txt"; + Map map = readFileToMap(ipInfo); + String ipInfos = map.get("ipList"); + List ipList = Arrays.asList(ipInfos.split(",")); + int timeout = Integer.parseInt(map.get("timout")); + String cert = readFileAsString(certInfo); + String bkCode = map.get("bkcode"); + Map snmpMap = readFileToMap(snmpInfo); + Gson gson = new Gson(); + try { + sydApi4j.importCertToServers(ipList, timeout, cert, bkCode, gson.toJson(snmpMap)); + } catch (Exception e) { + System.out.println(); + System.out.println(); + System.out.println(); + System.out.println("---------------------证书导入失败日志----------------------"); + System.out.println(e.getMessage()); + } + System.out.println("------------end-----------------------"); + stopWatch.stop(); + System.out.println("耗时:" + stopWatch.getTotalTimeMillis() + "ms"); + + } + public static Map readFileToMap(String filePath) { + Map map = new HashMap<>(); + + try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { + String line; + while ((line = br.readLine()) != null) { + // 跳过空行和注释行(假设以#开头的为注释) + if (line.trim().isEmpty() || line.startsWith("#")) { + continue; + } + + // 按分隔符分割键值(例如"="或":") + String[] parts = line.split("=", 2); // 使用第二个参数限制分割次数 + if (parts.length == 2) { + String key = parts[0].trim(); + String value = parts[1].trim(); + map.put(key, value); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + + return map; + } + + public static String readFileAsString(String filePath) { + StringBuilder content = new StringBuilder(); + try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { + String line; + while ((line = br.readLine()) != null) { + content.append(line).append("\n"); + } + } catch (IOException e) { + e.printStackTrace(); + } + return content.toString(); + } +} diff --git a/src/main/java/com/sunyard/SydApi.java b/src/main/java/com/sunyard/SydApi.java index 7153498..90f5688 100644 --- a/src/main/java/com/sunyard/SydApi.java +++ b/src/main/java/com/sunyard/SydApi.java @@ -120,5 +120,5 @@ public interface SydApi extends public void setBindObject(Object bindObject); - void importCertToServers(List addressList, int timeout, String cert); + void importCertToServers(List addressList, int timeout, String cert, String bkCode, String snmpConfig); } diff --git a/src/main/java/com/sunyard/SydApiException.java b/src/main/java/com/sunyard/SydApiException.java index 009b0e3..51834f4 100644 --- a/src/main/java/com/sunyard/SydApiException.java +++ b/src/main/java/com/sunyard/SydApiException.java @@ -137,6 +137,16 @@ public class SydApiException extends RuntimeException{ } } + public SydApiException(String msg, int retCode, boolean flag){ + super(String.format(" %04X", retCode) + ":" + ( null == msg ? transMsg(retCode) : msg )); + this.retCode = retCode; + if (null == msg || "".equals(msg)){ + transMsg(); + }else { + this.msg = msg; + } + } + public SydApiException(String msg, int ret, Throwable e) { super("SydApiException(code =" + String.format(" %04x", ret) + " : " + "msg =" + (msg == null ? "未定义的错误" : msg) + ")", e); this.retCode = ret; diff --git a/src/main/java/com/sunyard/snmp/SnmpTrapSender.java b/src/main/java/com/sunyard/snmp/SnmpTrapSender.java index 81f1bc9..06da41e 100644 --- a/src/main/java/com/sunyard/snmp/SnmpTrapSender.java +++ b/src/main/java/com/sunyard/snmp/SnmpTrapSender.java @@ -11,10 +11,8 @@ import java.util.Map; import java.util.Properties; import java.util.Vector; -public class SnmpTrapSender { - private static volatile SnmpTrapSender instance; +public class SnmpTrapSender implements AutoCloseable{ private Snmp snmp; - private Properties config; // 配置参数 private String ip; @@ -23,50 +21,17 @@ public class SnmpTrapSender { private String community; private int version; - - private SnmpTrapSender() throws IOException { -// loadConfig(); - ip = "172.16.18.113"; - port = 162; - enterpriseOid = "1.3.6.1.4.1.2021.251.1"; - community = "public"; - version = 1; + public SnmpTrapSender(Map map) throws IOException { + loadConfig(map); initializeSNMP(); } - public static SnmpTrapSender getInstance() throws IOException { - if (instance == null) { - synchronized (SnmpTrapSender.class) { - if (instance == null) { - instance = new SnmpTrapSender(); - } - } - } - return instance; - } - - private void loadConfig() { - try (InputStream input = getClass().getClassLoader().getResourceAsStream("test.properties")) { - config = new Properties(); - config.load(input); - - ip = config.getProperty("snmp.target.ip"); - port = Integer.parseInt(config.getProperty("snmp.target.port")); - enterpriseOid = config.getProperty("enterprise.oid"); - community = config.getProperty("snmp.community"); - version = Integer.parseInt(config.getProperty("snmp.version")); - - } catch (IOException | NumberFormatException e) { - throw new RuntimeException("加载配置文件失败", e); - } - } - public void loadConfig(Map map) { ip = map.getOrDefault("snmp.target.ip", null); -// port = Integer.parseInt(map.getOrDefault("snmp.target.port", "0")); + port = Integer.parseInt(map.getOrDefault("snmp.target.port", "162")); enterpriseOid = map.getOrDefault("enterprise.oid", null); - community = map.getOrDefault("snmp.community", null); -// version = Integer.parseInt(map.getOrDefault("snmp.version", "1")); + community = map.getOrDefault("snmp.community", "public"); + version = Integer.parseInt(map.getOrDefault("snmp.version", "1")); } private void initializeSNMP() throws IOException { @@ -109,10 +74,10 @@ public class SnmpTrapSender { pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(System.currentTimeMillis()/1000))); pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, - new OID(enterpriseOid + ".0.1"))); - pdu.add(new VariableBinding(new OID(enterpriseOid + ".1.1"), + new OID(enterpriseOid + ".1.1"))); + pdu.add(new VariableBinding(new OID(enterpriseOid + ".2.1"), new OctetString(message))); - pdu.add(new VariableBinding(new OID(enterpriseOid + ".1.2"), + pdu.add(new VariableBinding(new OID(enterpriseOid + ".2.2"), new Integer32(severity))); } @@ -126,9 +91,11 @@ public class SnmpTrapSender { return target; } + @Override public void close() throws IOException { if (snmp != null) { snmp.close(); + snmp = null; } } } diff --git a/src/main/java/com/sunyard/task/AsyncTaskExecutor.java b/src/main/java/com/sunyard/task/AsyncTaskExecutor.java index 615c878..b09d1b8 100644 --- a/src/main/java/com/sunyard/task/AsyncTaskExecutor.java +++ b/src/main/java/com/sunyard/task/AsyncTaskExecutor.java @@ -94,8 +94,9 @@ public class AsyncTaskExecutor { private CompletableFuture handleRetry(TaskContext context, Throwable ex) { if (context.canRetry()) { context.decreaseRetry(); - System.out.printf("[重试调度] ID: %s | 延迟: %ss | 剩余重试: %d | 错误: %s%n", + System.out.printf("[重试调度] ID: %s| IP:%s | 延迟: %ss | 剩余重试: %d | 错误: %s%n", context.getTaskId(), + context.getAddress(), context.getRetryDelay().getSeconds(), context.getRetriesLeft(), ex.getCause().getMessage()); diff --git a/src/main/java/racal/sunyard/main/SydApi4j.java b/src/main/java/racal/sunyard/main/SydApi4j.java index f9d80f8..d51d31a 100644 --- a/src/main/java/racal/sunyard/main/SydApi4j.java +++ b/src/main/java/racal/sunyard/main/SydApi4j.java @@ -25,7 +25,6 @@ import com.sunyard.trans.FullMode; import com.sunyard.trans.PacketSN; import com.sunyard.trans.RoundMode; import com.sunyard.util.*; -import org.apache.commons.collections4.CollectionUtils; import org.bouncycastle.asn1.*; import org.bouncycastle.asn1.cms.ContentInfo; import org.bouncycastle.cms.SydCmsUtil; @@ -52,6 +51,7 @@ import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.time.Duration; +import java.time.LocalDateTime; import java.util.*; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -1304,44 +1304,50 @@ public class SydApi4j implements SydApi { return dn; } - public void initSnmpTrapConfig(String config) { - Gson gson = new Gson(); - Map map = - gson.fromJson(config, new TypeToken>() {}.getType()); - try { - SnmpTrapSender.getInstance().loadConfig(map); - } catch (IOException e) { - throw new SydApiException("snmp配置错误", -1); - } - - } - @Override - public void importCertToServers(List addressList, int timeout, String cert) { - if (CollectionUtils.isEmpty(addressList)) { - throw new RuntimeException("签名服务器地址不能为空"); + public void importCertToServers(List addressList, int timeout, String cert, String bkCode, String snmpConfig) { + if (null == addressList || addressList.isEmpty()) { + throw new IllegalArgumentException("签名服务器地址不能为空"); + } + if (null == cert || cert.length() == 0) { + throw new IllegalArgumentException("证书不能为空"); + } + if (null == snmpConfig || snmpConfig.length() == 0) { + throw new IllegalArgumentException("snmp配置不能为空"); } List> taskContexts = addressList.stream().map(p -> createTaskContext(p, timeout, cert)).collect(Collectors.toList()); AsyncTaskExecutor executor = new AsyncTaskExecutor(); List> taskOutcomes = executor.execBatchTasks(taskContexts); //失败的记录日志 - List failures = taskOutcomes.stream() - .filter(out -> !out.isSuccess()).map(task -> task.getContext().getAddress()) - .collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(failures)) { + List failures = new ArrayList<>(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("日期:").append(LocalDateTime.now()).append("\n"); + for (TaskOutcome taskOutcome : taskOutcomes) { + if (!taskOutcome.isSuccess()) { + failures.add(taskOutcome.getContext().getAddress()); + stringBuilder.append("ip:").append(taskOutcome.getContext().getAddress()).append("/证书导入失败:").append(taskOutcome.getError().getMessage()).append("\n"); + } + } + if (!failures.isEmpty()) { + //记录失败日志 + stringBuilder.append("行号:").append(bkCode).append("\n").append("证书:").append(cert); //异步发送snmp trap消息 String result = "[" + failures.stream() .map(Object::toString) .collect(Collectors.joining(",")) + "]"; - System.out.println(result); - String message = "servers:" + result + ",import cert:" + cert + ",failed!"; - try { - SnmpTrapSender.getInstance().sendTrap(message, 1); - } catch (Exception e) { - System.out.println("消息发送失败!"); + String message = "[SJJ1511] Certificate import failed - Servers:" + result + "| bkCode:[" + bkCode + "]"; + + Gson gson = new Gson(); + Map map = gson.fromJson(snmpConfig, new TypeToken>() {}.getType()); + try (SnmpTrapSender sender = new SnmpTrapSender(map)) { + sender.sendTrap(message, 2); + System.out.println("snmp告警消息发送成功:" + message); + } catch (IOException e) { + System.out.println("snmp告警消息发送失败:" + e.getMessage()); } + throw new SydApiException(String.valueOf(stringBuilder), 56300, true); } } @@ -2548,6 +2554,7 @@ public class SydApi4j implements SydApi { while (this.retryWhenNetError > 0) { try { println("Net error retry on " + this.retryWhenNetError); + System.out.println("Net error retry on "); Socket socket = new Socket(); SocketAddress address = new InetSocketAddress(ip, port); diff --git a/src/test/java/SimpleTest.java b/src/test/java/SimpleTest.java index adb4926..52c2a1b 100644 --- a/src/test/java/SimpleTest.java +++ b/src/test/java/SimpleTest.java @@ -111,6 +111,6 @@ public class SimpleTest { map.put("snmp.community", "public"); map.put("snmp.version", "1"); // SnmpTrapSender.getInstance().loadConfig(map); - SnmpTrapSender.getInstance().sendTrap("serve ip[127.0.0.1], import cert failed", 1); +// SnmpTrapSender.getInstance().sendTrap("serve ip[127.0.0.1], import cert failed", 1); } } diff --git a/src/test/java/com/sunyard/sydapi/test/CertTest.java b/src/test/java/com/sunyard/sydapi/test/CertTest.java index 61aa20b..a2f66d8 100644 --- a/src/test/java/com/sunyard/sydapi/test/CertTest.java +++ b/src/test/java/com/sunyard/sydapi/test/CertTest.java @@ -22,7 +22,7 @@ public class CertTest { public static void main(String[] args) { //System.setProperty("com.sunyard.sydapi4j.debug", "true"); - SydApi4j api = (SydApi4j) new SydApi4j().connect("192.168.1.129", 8889, null, 1000); + SydApi4j api = (SydApi4j) new SydApi4j().connect("172.16.18.5", 8889, null, 1000); try{ Listdns = api.getAllCert(); System.out.println(Arrays.toString( dns.toArray() ) ); diff --git a/src/test/java/sample/Test4NongxinCW.java b/src/test/java/sample/Test4NongxinCW.java index aa335a9..187bc56 100644 --- a/src/test/java/sample/Test4NongxinCW.java +++ b/src/test/java/sample/Test4NongxinCW.java @@ -1,23 +1,21 @@ package sample; +import cn.hutool.core.date.StopWatch; +import com.google.gson.Gson; import com.sunyard.SydApiException; -import com.sunyard.entity.ServerConfig; import com.sunyard.proto.Util; import com.sunyard.snmp.SnmpTrapSender; -import com.sunyard.util.CertUtil; -import com.sunyard.util.SYMUtil; import org.junit.After; import org.junit.Before; import org.junit.Test; import racal.sunyard.main.SydApi4j; -import racal.sunyard.main.SydApiBuilder; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import java.util.concurrent.ThreadFactory; +import java.util.Map; import static com.sunyard.util.CertUtil.convertToX509Cert; @@ -29,26 +27,26 @@ public class Test4NongxinCW { byte[] orgData = new byte[100]; -// @Before -// public void before() { -// // 通过设置debug的属性开启debug,如果不设置则默认不打开 -// api = (SydApi4j) new SydApi4j().connect("172.16.17.34", 8889, null, 1000); -// -// } -// -// @Test -// public void connection() { -// -// } -// -// @After -// public void after() { -// try { -// this.api.disconnect(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } + @Before + public void before() { + // 通过设置debug的属性开启debug,如果不设置则默认不打开 + api = (SydApi4j) new SydApi4j().connect("172.16.18.6", 8889, null, 1000); + + } + + @Test + public void connection() { + + } + + @After + public void after() { + try { + this.api.disconnect(); + } catch (Exception e) { + e.printStackTrace(); + } + } @Test public void nakeSign(){ @@ -99,6 +97,20 @@ public class Test4NongxinCW { "jY4S64AdH/IWiO+aUyfPAiAu+9MrvCfd27KGZQKurf/djfbe5xBQg2CG6ae+Tax9lQ==\n" + "-----END CERTIFICATE-----"; + String cert = "-----BEGIN CERTIFICATE-----\n" + + "MIICITCCAcWgAwIBAgIGAZbD4M8uMAwGCCqBHM9VAYN1BQAwSzELMAkGA1UEBhMC\n" + + "Q04xDjAMBgNVBAoTBUdNU1NMMRAwDgYDVQQLEwdQS0kvU00yMRowGAYDVQQDExFN\n" + + "aWRkbGVDQSBmb3IgVGVzdDAiGA8yMDI1MDUxMTE2MDAwMFoYDzIwMjYwNTExMTYw\n" + + "MDAwWjBQMQswCQYDVQQGDAJDTjERMA8GA1UECAwIaGFuZ3pob3UxETAPBgNVBAcM\n" + + "CGhhbmd6aG91MQwwCgYDVQQKDANzc3MxDTALBgNVBAMMBHNzc3MwWTATBgcqhkjO\n" + + "PQIBBggqgRzPVQGCLQNCAARGnQQLJSiMkoH2iCqbsTpGkZmHPCP7ThQQmzf1m8jr\n" + + "NjgMzBJ0p2rXJQSglaVqaVcaL/ox5wfV8okIavToNQjao4GJMIGGMBsGA1UdIwQU\n" + + "MBKAEPl/VbQnlDNiplbKb8xdGv8wGQYDVR0OBBIEEMu/aP+Gw3PMakxFSVzC5MYw\n" + + "MQYIKwYBBQUHAQEEJTAjMCEGCCsGAQUFBzABhhVodHRwczovL29jc3AuZ21zc2wu\n" + + "Y24wCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCAMAwDAYIKoEcz1UBg3UFAANIADBF\n" + + "AiEAnoN1iWj1Cv6M4eUtSt2XEoKpswLTEy7gczIn/ZTI+JYCIB2but+jsuUD6Udp\n" + + "uFp7xVvOp8IKQyazXx9bA4N9PbLo\n" + + "-----END CERTIFICATE-----"; //将证书导入设备,获取证书主题 String dn = api.importCertAndGetDN(certBySign); @@ -174,33 +186,64 @@ public class Test4NongxinCW { @Test public void importAllCert() { + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); + String cert = "-----BEGIN CERTIFICATE-----\n" + + "MIICMDCCAdagAwIBAgIJAOWoGwJCnjlLMAoGCCqBHM9VAYN1MGcxCzAJBgNVBAYT\n" + + "AkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdIYWlEaWFuMRMwEQYDVQQK\n" + + "DApHTUNlcnQub3JnMR8wHQYDVQQDDBZHTUNlcnQgR00gUm9vdCBDQSAtIDAxMB4X\n" + + "DTI1MDUxMzAyMzUxM1oXDTI2MDUxMzAyMzUxM1owRTELMAkGA1UEBgwCQ04xCzAJ\n" + + "BgNVBAgMAnp6MQswCQYDVQQHDAJ6ejEMMAoGA1UECgwDenp6MQ4wDAYDVQQDDAV6\n" + + "enp6ejBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABK5fyRSACWPIBBr/3U+qvjvp\n" + + "niropv2PrA3ZLU1bG8vQpwAEMA0kwyqGgXURBPbvWdAhN7s9wfvHbJyMd9CMZGqj\n" + + "gYwwgYkwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwLAYJYIZIAYb4QgENBB8W\n" + + "HUdNQ2VydC5vcmcgU2lnbmVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSQB7UUqEuG\n" + + "kl4mrx3MAhKTptfbYjAfBgNVHSMEGDAWgBR/Wl47AIRZKg+YvqEObzmVQxBNBzAK\n" + + "BggqgRzPVQGDdQNIADBFAiEA4kgTdn/iA/XYfjTEeOcELwBXd0tTFghkpfP8DhBF\n" + + "KFQCIAXZTL6VPtW67tM/DF4ZgFt5S/YIiFombKa2bWOfL81u\n" + + "-----END CERTIFICATE-----"; + String cert1 = "-----BEGIN CERTIFICATE-----\n" + + "MIIDNTCCAh2gAwIBAgIFE2lVIzcwDQYJKoZIhvcNAQEFBQAwITELMAkGA1UEBhMC\n" + + "Q04xEjAQBgNVBAoTCUNGQ0EgT0NBMTAeFw0yMjA0MjIwODIyMTVaFw0yNzA0MjIw\n" + + "ODIyMTVaMGQxCzAJBgNVBAYTAkNOMRIwEAYDVQQKEwlDRkNBIE9DQTExDzANBgNV\n" + + "BAsTBlRQQy1TMzEVMBMGA1UECxMMSW5kaXZpZHVhbC0xMRkwFwYDVQQDExBBUkNV\n" + + "NTIwMDAyNTI3MDg1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC74cciiBbs\n" + + "UcfmBxVlMWtsILsc85erRngknMaMW6wFyBsfJGrcL0TC7EO5XIsJXRrJN32vWdoo\n" + + "6Qm8WUGour+hrSNDzJ7cVtNA1ragPIjlkmMgbDLD0UsEbjHmA902079Fktv35L4l\n" + + "Hqe/vBygXcUoWJsGY5+8ykmI8W0LYPRkVwIDAQABo4G0MIGxMB8GA1UdIwQYMBaA\n" + + "FNHb6YiC5d0aj0yqAIy+fPKrG/bZMDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9j\n" + + "cmwuY2ZjYS5jb20uY24vUlNBL2NybDMwMDgyLmNybDALBgNVHQ8EBAMCA+gwHQYD\n" + + "VR0OBBYEFMM/joQIWvRFdLOx0HarTXAtZk7RMCgGA1UdJQQhMB8GCCsGAQUFBwMC\n" + + "BggrBgEFBQcDBAYJKoZIhvcvAQEFMA0GCSqGSIb3DQEBBQUAA4IBAQANEhHR34gg\n" + + "iivRj9VTO2lS0StsHQy4A4seq9YmaQa6QZDUEndFwcxr5DN6CAf6xA1YiHG5FoYd\n" + + "yH4sLORUhdfzQUWle7ZTPn4TfFjddPh3RDHXMXOh+pHNgrSjXpdACwadHedJO5e4\n" + + "HqXI8wEoNovDA8HT4ucMmsZHbIyQMhxW9k+DgTHx8nvltqv3reoDou3ekQ1tSWvW\n" + + "nUteKp64vop1ktgiIKjLshKRaUmZO4/fo9EcJHCH51J6f/2TAM7S+IaFzXR/VWf3\n" + + "JaiaGbT8kAJI854SmKWqRE8HVzMo/NYNdP0M7xZ2kt68PVE/UIl20xWii9P2/7Oh\n" + + "KYAnLX1nKjbg\n" + + "-----END CERTIFICATE-----"; List masterNodes = new ArrayList<>(); - masterNodes.add("192.168.55.80:3336"); - masterNodes.add("172.16.128.2:8889"); - masterNodes.add("172.16.128.3:8889"); - masterNodes.add("172.16.128.4:8889"); +// masterNodes.add("172.16.18.99:8889"); + masterNodes.add("172.16.18.5:8889"); + masterNodes.add("172.16.18.6:8889"); +// masterNodes.add("172.16.18.7:8889"); +// masterNodes.add("172.16.18.8:8889"); int timeout = 1000; - String pwd = null; - String cert = ""; + Map map = new HashMap<>(); + map.put("snmp.target.ip", "172.16.18.113"); + map.put("snmp.target.port", "162"); + map.put("enterprise.oid", "1.3.6.1.4.1.9999"); + map.put("snmp.community", "public"); + map.put("snmp.version", "1"); SydApi4j sydApi4j = new SydApi4j(); -// sydApi4j.initSnmpTrapConfig(""); - sydApi4j.importCertToServers(masterNodes, timeout, cert); + sydApi4j.importCertToServers(masterNodes, timeout, cert1, "12345678", new Gson().toJson(map)); + stopWatch.stop(); + System.out.println(stopWatch.getTotalTimeSeconds()); } @Test public void snmpTest() { - try { - SnmpTrapSender sender = SnmpTrapSender.getInstance(); - // 发送不同级别的日志 - sender.sendTrap("Application started", 0); - sender.sendTrap("High CPU usage", 1); - sender.sendTrap("Database connection lost", 5); - - sender.close(); - } catch (IOException e) { - e.printStackTrace(); - } }