From 616db59ed7fce7f0b4332c6d61e4fb3f173390f3 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 14 十一月 2022 14:13:47 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/config/InitConfig.java                      |   24 ++++
 src/main/java/com/lf/server/entity/show/ReqParamFloatServer.java        |  138 +++++++++++++++++++++++++++
 src/main/java/com/lf/server/helper/LicHelper.java                       |  105 +++++++++++++++++++++
 src/main/java/com/lf/server/controller/other/FloatServerController.java |   14 ++
 说明.txt                                                                  |   10 ++
 src/main/java/com/lf/server/helper/HttpHelper.java                      |    2 
 6 files changed, 286 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/lf/server/config/InitConfig.java b/src/main/java/com/lf/server/config/InitConfig.java
index cd456f9..fa19c91 100644
--- a/src/main/java/com/lf/server/config/InitConfig.java
+++ b/src/main/java/com/lf/server/config/InitConfig.java
@@ -1,5 +1,6 @@
 package com.lf.server.config;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
@@ -8,10 +9,8 @@
 import com.lf.server.entity.all.PermsAuthEntity;
 import com.lf.server.entity.all.ResAuthEntity;
 import com.lf.server.entity.bd.DlgAgnpEntity;
-import com.lf.server.helper.AesHelper;
-import com.lf.server.helper.FileHelper;
-import com.lf.server.helper.GdalHelper;
-import com.lf.server.helper.PathHelper;
+import com.lf.server.entity.show.ReqParamFloatServer;
+import com.lf.server.helper.*;
 import com.lf.server.mapper.bd.DlgAgnpMapper;
 import com.lf.server.service.all.BaseQueryService;
 import com.lf.server.service.all.PermsService;
@@ -79,6 +78,7 @@
             //boolean f2 = ZipHelper.zip("D:\\LF\\data\\res.zip", "D:\\LF\\data\\unzip\\resources");
             //boolean f3 = Zip4jHelper.zip("D:\\LF\\data\\zip\\resources.zip", "D:\\LF\\data\\zip\\resources", "12345");
             //boolean f4 = Zip4jHelper.unzip("D:\\LF\\data\\zip\\resources.zip", "D:\\LF\\data\\zip\\res", "12345");
+            //testFloatServer();
 
             // 鍒濆鍖�
             GdalHelper.init();
@@ -185,4 +185,20 @@
         blacklistService.clearCache();
         List<String> list5 = blacklistService.selectIpList(1);
     }
+
+    private void testFloatServer() {
+        try {
+            ReqParamFloatServer reqParam = new ReqParamFloatServer("192.168.20.106", "12316");
+            String json = JSON.toJSONString(reqParam);
+
+            LicHelper helper = new LicHelper();
+            helper.d("&kdaow$IEW.##%5-");
+            helper.c("*y91z72a;pclfleoqc20161v$DSP&%3+");
+
+            String str = helper.a(json);
+            System.out.println("ReqParamFloatServer: " + str);
+        } catch (Exception ex) {
+            //
+        }
+    }
 }
diff --git a/src/main/java/com/lf/server/controller/other/FloatServerController.java b/src/main/java/com/lf/server/controller/other/FloatServerController.java
index 7586bcf..9fdaa58 100644
--- a/src/main/java/com/lf/server/controller/other/FloatServerController.java
+++ b/src/main/java/com/lf/server/controller/other/FloatServerController.java
@@ -9,6 +9,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+/**
+ * FloatServer
+ * @author WWW
+ */
 @Api(tags = "FloatServer")
 @RestController
 @RequestMapping("/floatserver")
@@ -16,10 +20,14 @@
     @RequestMapping({"/checkout/license"})
     public void license(HttpServletRequest req, HttpServletResponse res) {
         try {
-            HttpHelper httpHelper = new HttpHelper();
-            httpHelper.service(req, res, "http://192.168.20.43:38080/floatserver/checkout/license", null);
-        } catch (Exception ex) {
+            if (false) {
+                HttpHelper httpHelper = new HttpHelper();
+                httpHelper.service(req, res, "http://192.168.20.43:38080/floatserver/checkout/license", null);
+            }
 
+            res.getWriter().write("8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cfe2c56f12cd9852c447904210117b41fe2672b24d7e82fd581ad5a0983b501b5bcbe97d65dbbe770dbdc4a98e80d2966a71ecd0041a5282283bff853d70caf7aed671bc9c9d4bedf6d1d0294394861af40f195d68a965d957d53c78aa50ada3afc65d1a526c54648e6e081e8f7f7ab1c31b9f75916170e638b0b9216d30204864afe3a7a1bc8a6563bf44daf6a29e27c19f798c4f82dbb904ea4aa4fcc87a82226d9bf3e891ecb97b94263064fec025e3aa7c440d7c0e8ed559b84ae2438ec0fc438444a03c992883170ecdde20e08552efcf9d584de469930b27c81f946548d5c6e63e815671182b03b5e6e622ddb10a3f6a35ad3f44ec247a3b2dee0e936020d48efb7abc2d2abfb555f61d54c85eca");
+        } catch (Exception ex) {
+            //
         }
     }
 }
diff --git a/src/main/java/com/lf/server/entity/show/ReqParamFloatServer.java b/src/main/java/com/lf/server/entity/show/ReqParamFloatServer.java
new file mode 100644
index 0000000..4ab32df
--- /dev/null
+++ b/src/main/java/com/lf/server/entity/show/ReqParamFloatServer.java
@@ -0,0 +1,138 @@
+package com.lf.server.entity.show;
+
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.util.Enumeration;
+
+/**
+ * ReqParamFloatServer
+ * @author WWW
+ */
+public class ReqParamFloatServer {
+    private String id;
+    private String port;
+    private String modules;
+    private int availableNum;
+    private long time;
+    private String localId;
+    private String cmdType;
+
+    public ReqParamFloatServer() {
+        this.localId = a();
+    }
+    public ReqParamFloatServer(String id,String port) {
+        this.id = id;
+        this.port = port;
+        this.localId = a();
+    }
+
+    public String getPort() {
+        return this.port;
+    }
+
+    public void setPort(final String port) {
+        this.port = port;
+    }
+
+    public String getId() {
+        return this.id;
+    }
+
+    public void setId(final String id) {
+        this.id = id;
+    }
+
+    public String getModules() {
+        return this.modules;
+    }
+
+    public void setModules(final String modules) {
+        this.modules = modules;
+    }
+
+    public int getAvailableNum() {
+        return this.availableNum;
+    }
+
+    public void setAvailableNum(final int availableNum) {
+        this.availableNum = availableNum;
+    }
+
+    public long getTime() {
+        return this.time;
+    }
+
+    public void setTime(final long time) {
+        this.time = time;
+    }
+
+    public String getLocalId() {
+        return this.localId;
+    }
+
+    public String getCmdType() {
+        return this.cmdType;
+    }
+
+    public void setCmdType(final String cmdType) {
+        this.cmdType = cmdType;
+    }
+
+    public static String a() {
+        String string = "";
+        try {
+            final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
+            while (networkInterfaces.hasMoreElements()) {
+                final NetworkInterface networkInterface;
+                if (!(networkInterface = networkInterfaces.nextElement()).isLoopback() && !networkInterface.isVirtual() && networkInterface.isUp()) {
+                    final Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
+                    final byte[] hardwareAddress;
+                    if ((hardwareAddress = networkInterface.getHardwareAddress()) == null || networkInterface.getName().contains("docker")) {
+                        continue;
+                    }
+                    while (inetAddresses.hasMoreElements()) {
+                        final InetAddress inetAddress;
+                        if ((inetAddress = inetAddresses.nextElement()) != null && inetAddress instanceof Inet4Address) {
+                            final String a = a(inetAddress);
+                            string = String.valueOf(inetAddress.getHostAddress()) + "|" + a;
+                            if (!a.isEmpty()) {
+                                return string;
+                            }
+                            continue;
+                        }
+                    }
+                }
+            }
+        } catch (SocketException ex) {
+            //
+        }
+        return string;
+    }
+
+    private static String a(final InetAddress addr) {
+        String upperCase = "";
+        try {
+            final byte[] hardwareAddress = NetworkInterface.getByInetAddress(addr).getHardwareAddress();
+            final StringBuffer sb = new StringBuffer("");
+            for (int i = 0; i < hardwareAddress.length; ++i) {
+                if (i != 0) {
+                    sb.append("-");
+                }
+                final String hexString;
+                if ((hexString = Integer.toHexString(hardwareAddress[i] & 0xFF)).length() == 1) {
+                    sb.append("0".concat(String.valueOf(hexString)));
+                } else {
+                    sb.append(hexString);
+                }
+            }
+            upperCase = sb.toString().toUpperCase();
+        } catch (Exception ex) {
+            //
+        }
+        return upperCase;
+    }
+
+
+}
diff --git a/src/main/java/com/lf/server/helper/HttpHelper.java b/src/main/java/com/lf/server/helper/HttpHelper.java
index 7417461..6cef7fc 100644
--- a/src/main/java/com/lf/server/helper/HttpHelper.java
+++ b/src/main/java/com/lf/server/helper/HttpHelper.java
@@ -101,6 +101,7 @@
         String method = request.getMethod();
         HttpEntityEnclosingRequest proxyRequest = new BasicHttpEntityEnclosingRequest(method, url);
         proxyRequest.setEntity(new InputStreamEntity(request.getInputStream(), getContentLength(request)));
+        //String str = EntityUtils.toString(proxyRequest.getEntity(), "UTF-8")
 
         return proxyRequest;
     }
@@ -269,6 +270,7 @@
     protected void copyResponseEntity(HttpResponse proxyResponse, HttpServletResponse response) throws IOException {
         HttpEntity entity = proxyResponse.getEntity();
         if (entity != null) {
+            //String str = EntityUtils.toString(entity, "UTF-8")
             OutputStream servletOutputStream = response.getOutputStream();
             entity.writeTo(servletOutputStream);
         }
diff --git a/src/main/java/com/lf/server/helper/LicHelper.java b/src/main/java/com/lf/server/helper/LicHelper.java
new file mode 100644
index 0000000..95f3472
--- /dev/null
+++ b/src/main/java/com/lf/server/helper/LicHelper.java
@@ -0,0 +1,105 @@
+package com.lf.server.helper;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.Charset;
+
+/**
+ * 璁稿彲甯姪绫�
+ * @author WWW
+ */
+public class LicHelper {
+    private String a;
+    private String b;
+    private static String c;
+    private static String d;
+    private static String e;
+    private static final Logger f;
+
+    static {
+        c = "utf-8";
+        d = "AES";
+        e = "AES/CBC/PKCS5Padding";
+        f = LoggerFactory.getLogger(LicHelper.class);
+    }
+
+    private IvParameterSpec a() {
+        try {
+            return new IvParameterSpec(this.b.getBytes(c));
+        } catch (Exception ex) {
+            return null;
+        }
+    }
+
+    public final String a(final String s) {
+        String str = null;
+        try {
+            // final Cipher instance
+            // (instance = Cipher.getInstance(e)).init(1, new SecretKeySpec(this.a.getBytes(c), d), this.a())
+            // str = a(instance.doFinal(s.getBytes(Charset.forName(c))))
+
+            Cipher instance = Cipher.getInstance(e);
+            IvParameterSpec ips = this.a();
+            SecretKeySpec sks = new SecretKeySpec(this.a.getBytes(c), d);
+            instance.init(1, sks, ips);
+
+            byte[] bytes = s.getBytes(Charset.forName(c));
+            str = a(instance.doFinal(bytes));
+        } catch (Exception ex) {
+            System.out.println(ex.getStackTrace());
+        }
+        return str;
+    }
+
+    public final String b(final String s) {
+        String s2 = null;
+        try {
+            final Cipher instance;
+            (instance = Cipher.getInstance(e)).init(2, new SecretKeySpec(this.a.getBytes(c), d), this.a());
+            s2 = new String(instance.doFinal(this.e(s)), c);
+        } catch (Exception ex) {
+            //
+        }
+        return s2;
+    }
+
+    private static String a(final byte[] array) {
+        final StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < array.length; ++i) {
+            final String hexString;
+            if ((hexString = Integer.toHexString(array[i] & 0xFF)).length() < 2) {
+                sb.append("0");
+            }
+            sb.append(hexString);
+        }
+        return sb.toString();
+    }
+
+    private byte[] e(String upperCase) {
+        final int n = (upperCase = upperCase.toUpperCase()).length() / 2;
+        final char[] charArray = upperCase.toCharArray();
+        final byte[] array = new byte[n];
+        for (int i = 0; i < n; ++i) {
+            final int n2 = i << 1;
+            array[i] = (byte) ((byte) "0123456789ABCDEF".indexOf(charArray[n2]) << 4 | (byte) "0123456789ABCDEF".indexOf(charArray[n2 + 1]));
+        }
+        return array;
+    }
+
+    public final void c(String string) {
+        final String substring = (string = string).substring(2, 5);
+        final StringBuilder sb;
+        (sb = new StringBuilder(string)).replace(2, 5, string.substring(7, 10));
+        sb.replace(7, 10, substring);
+        string = sb.toString();
+        this.a = string;
+    }
+
+    public final void d(final String b) {
+        this.b = b;
+    }
+}
diff --git "a/\350\257\264\346\230\216.txt" "b/\350\257\264\346\230\216.txt"
index d71c9ff..d6fd42b 100644
--- "a/\350\257\264\346\230\216.txt"
+++ "b/\350\257\264\346\230\216.txt"
@@ -146,6 +146,16 @@
   琛ㄥ崟鏍¢獙锛歷alidator
 
 private static final String SQLSERVER_URL = "jdbc:sqlserver://192.168.0.77\\ZKZS;databaseName=xian";
+---------------------------------------------------------------------------------------------------- floatserver
+http://localhost:12316/floatserver/checkout/license
+String str = EntityUtils.toString(entity, "UTF-8");
+
+璇锋眰锛�
+8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cf755f0dfd19be0d80e2573e0a2a22edca35215b390607b0ff68deab90c69296df60934315036bd8a64ee668a39502754b701be7534d0ca2e790161194d673d9454c44c570a1dbe604ac5952be731ca15809f9f4d43ad1b023f69981ce77abacc50e8e5217627eb236d5f6d114e00585d9a597f3a195b0b0c0ff8cf1e2445ca12e
+鍝嶅簲锛�
+8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cfe2c56f12cd9852c447904210117b41fe2672b24d7e82fd581ad5a0983b501b5bcbe97d65dbbe770dbdc4a98e80d2966a71ecd0041a5282283bff853d70caf7aed671bc9c9d4bedf6d1d0294394861af40f195d68a965d957d53c78aa50ada3afc65d1a526c54648e6e081e8f7f7ab1c31b9f75916170e638b0b9216d30204864afe3a7a1bc8a6563bf44daf6a29e27c19f798c4f82dbb904ea4aa4fcc87a82226d9bf3e891ecb97b94263064fec025e3aa7c440d7c0e8ed559b84ae2438ec0fc438444a03c992883170ecdde20e08552efcf9d584de469930b27c81f946548d5c6e63e815671182b03b5e6e622ddb10a3f6a35ad3f44ec247a3b2dee0e936020d48efb7abc2d2abfb555f61d54c85eca
+
+{"machineId":"dba5c0f908f92fbdb6f0a3f58a5a3193","isRegistered":true,"registeredModules":[1,3,4,9,10,11,12,13,17,25,30,33,37],"modules":[{"id":1,"name":"wms","group":"GISServer","title":"鍔ㄦ�佸湴鍥炬湇鍔�"},{"id":3,"name":"tms","group":"GISServer","title":"鐡︾墖鍦板浘鏈嶅姟"},{"id":9,"name":"wfs","group":"GISServer","title":"瑕佺礌鏈嶅姟"},{"id":12,"name":"wns","group":"GISServer","title":"缃戠粶鍒嗘瀽鏈嶅姟"},{"id":13,"name":"geocode","group":"GISServer","title":"鍦扮悊缂栫爜鏈嶅姟"},{"id":17,"name":"wcs","group":"GISServer","title":"鏍呮牸鏈嶅姟"},{"id":25,"name":"c3d","group":"GISServer","title":"涓夌淮妯″瀷鏈嶅姟"},{"id":30,"name":"cts","group":"GISServer","title":"涓夌淮鍦板舰鏈嶅姟"},{"id":33,"name":"cimservice","group":"CIMSuite","title":"璇箟妯″瀷鏈嶅姟"},{"id":37,"name":"websdk","group":"WEBSDK","title":"WEBSDK"},{"id":38,"name":"pw","group":"Parallelworld","title":" Parallelworld"},{"id":50,"name":"ext","group":"extension","title":"extension"}],"expireDate":1668486201730,"isFloating":true,"floatServerIp":"192.168.20.106","floatServerPort":12316,"message":"OK","success":true}
 ------------------------------------------------------------------------------------------------ 鏉冮檺
 绠¢亾鍩虹澶ф暟鎹钩鍙帮細           鍒犻櫎
 缁煎悎灞曠ず\缁煎悎灞曠ず\鏌ヨ锛�       涓嬭浇銆佷笂浼�

--
Gitblit v1.9.3