From 64956223203a84514acc3d30cfb13176b0bcddc3 Mon Sep 17 00:00:00 2001 From: "768863620@qq.com" <768863620@qq.com> Date: Fri, 5 Jul 2024 11:29:04 +0800 Subject: [PATCH] lincense --- .../src/main/java/com/youchain/AppRun.java | 2 +- .../rest/SysAppUpdateController.java | 4 - .../modules/license/AGxServerInfos.java | 66 +---- .../modules/license/LicenseValidate.java | 270 +++++++++++++++--- .../modules/license/LinuxServerInfos.java | 76 ++--- .../modules/license/WindowsServerInfos.java | 83 ++---- .../modules/license/domain/LicenseCheck.java | 16 +- .../rest/AuthorizationController.java | 2 +- 8 files changed, 301 insertions(+), 218 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/AppRun.java b/youchain-system/src/main/java/com/youchain/AppRun.java index 051d819..f47be03 100644 --- a/youchain-system/src/main/java/com/youchain/AppRun.java +++ b/youchain-system/src/main/java/com/youchain/AppRun.java @@ -60,7 +60,7 @@ public class AppRun { springApplication.addListeners(new ApplicationPidFileWriter()); springApplication.addListeners(new MyApiDictListener()); springApplication.run(args); - log.info(JSONUtil.toJsonStr(LicenseValidate.getDeviceInfo())); + log.info(JSONUtil.toJsonStr(LicenseValidate.getSystem_price())); } @Bean diff --git a/youchain-system/src/main/java/com/youchain/appupdate/rest/SysAppUpdateController.java b/youchain-system/src/main/java/com/youchain/appupdate/rest/SysAppUpdateController.java index 9a968da..e544fba 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/rest/SysAppUpdateController.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/rest/SysAppUpdateController.java @@ -101,20 +101,16 @@ public class SysAppUpdateController { } - - @PutMapping @Log("修改app_update") @ApiOperation("修改app_update") @PreAuthorize("@el.check('sysAppUpdate:edit')") public ResponseEntity updateSysAppUpdate(@Validated @RequestBody SysAppUpdate resources){ sysAppUpdateService.update(resources); - for (Channel client : ServerListenerHandler.clients) { String devce_ip =((InetSocketAddress)client.remoteAddress()).getAddress().getHostAddress(); NettyUtils.light_on(devce_ip,NettyUtils.light_1,null); } - return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/youchain-system/src/main/java/com/youchain/modules/license/AGxServerInfos.java b/youchain-system/src/main/java/com/youchain/modules/license/AGxServerInfos.java index 940813a..0db177a 100644 --- a/youchain-system/src/main/java/com/youchain/modules/license/AGxServerInfos.java +++ b/youchain-system/src/main/java/com/youchain/modules/license/AGxServerInfos.java @@ -1,15 +1,10 @@ package com.youchain.modules.license; + + import com.youchain.modules.license.domain.LicenseCheck; import lombok.extern.slf4j.Slf4j; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; - @Slf4j public abstract class AGxServerInfos { @@ -30,15 +25,7 @@ public abstract class AGxServerInfos { return result; } - /** - *

获取IP地址

- */ - protected abstract List getIpAddress() throws Exception; - /** - *

获取Mac地址

- */ - protected abstract List getMacAddress() throws Exception; /** *

获取CPU序列号

@@ -53,53 +40,6 @@ public abstract class AGxServerInfos { /** *

获取当前服务器所有符合条件的InetAddress

*/ - protected List getLocalAllInetAddress() throws Exception { - - List result = new ArrayList<>(4); - - // 遍历所有的网络接口 - for (Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); networkInterfaces.hasMoreElements(); ) { - NetworkInterface ni = (NetworkInterface) networkInterfaces.nextElement(); - // 在所有的接口下再遍历IP - for (Enumeration addresses = ni.getInetAddresses(); addresses.hasMoreElements(); ) { - InetAddress address = (InetAddress) addresses.nextElement(); - //排除LoopbackAddress、SiteLocalAddress、LinkLocalAddress、MulticastAddress类型的IP地址 - if(!address.isLoopbackAddress() /*&& !inetAddr.isSiteLocalAddress()*/ - && !address.isLinkLocalAddress() && !address.isMulticastAddress()){ - result.add(address); - } - } - } - return result; - } - - /** - *

获取某个网络地址对应的Mac地址

- */ - protected String getMacByInetAddress(InetAddress inetAddr){ - - try { - byte[] mac = NetworkInterface.getByInetAddress(inetAddr).getHardwareAddress(); - StringBuffer sb = new StringBuffer(); - for(int i=0;i用于获取客户Linux服务器的基本信息

*/ public class LinuxServerInfos extends AGxServerInfos { - @Override - protected List getIpAddress() throws Exception { - List result = null; - //获取所有网络接口 - List inetAddresses = getLocalAllInetAddress(); - - if(inetAddresses != null && inetAddresses.size() > 0){ - result = inetAddresses.stream().map(InetAddress::getHostAddress).distinct().map(String::toLowerCase).collect(Collectors.toList()); - } - - return result; - } - - @Override - protected List getMacAddress() throws Exception { - List result = null; - - //1. 获取所有网络接口 - List inetAddresses = getLocalAllInetAddress(); - - if(inetAddresses != null && inetAddresses.size() > 0){ - //2. 获取所有网络接口的Mac地址 - result = inetAddresses.stream().map(this::getMacByInetAddress).distinct().collect(Collectors.toList()); - } - - return result; - } @Override protected String getCPUSerial() throws Exception { //序列号 String serialNumber = ""; - //使用dmidecode命令获取CPU序列号 - String[] shell = {"/bin/bash","-c","dmidecode -t processor | grep 'ID' | awk -F ':' '{print $2}' | head -n 1"}; - Process process = Runtime.getRuntime().exec(shell); - process.getOutputStream().close(); + try{ + String[] shell = {"/bin/bash","-c","dmidecode -t processor | grep 'ID' | awk -F ':' '{print $2}' | head -n 1"}; + Process process = Runtime.getRuntime().exec(shell); + process.getOutputStream().close(); - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String line = reader.readLine().trim(); - if(StringUtils.isNotBlank(line)){ - serialNumber = line; + String line = reader.readLine().trim(); + if(StringUtils.isNotBlank(line)){ + serialNumber = line; + } + reader.close(); + }catch (Exception e){ + serialNumber=""; } + //使用dmidecode命令获取CPU序列号 - reader.close(); return serialNumber; } @@ -67,20 +41,22 @@ public class LinuxServerInfos extends AGxServerInfos { protected String getMainBoardSerial() throws Exception { //序列号 String serialNumber = ""; + try{ + //使用dmidecode命令获取主板序列号 + String[] shell = {"/bin/bash","-c","dmidecode | grep 'Serial Number' | awk -F ':' '{print $2}' | head -n 1"}; + Process process = Runtime.getRuntime().exec(shell); + process.getOutputStream().close(); - //使用dmidecode命令获取主板序列号 - String[] shell = {"/bin/bash","-c","dmidecode | grep 'Serial Number' | awk -F ':' '{print $2}' | head -n 1"}; - Process process = Runtime.getRuntime().exec(shell); - process.getOutputStream().close(); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - - String line = reader.readLine().trim(); - if(StringUtils.isNotBlank(line)){ - serialNumber = line; + String line = reader.readLine().trim(); + if(StringUtils.isNotBlank(line)){ + serialNumber = line; + } + reader.close(); + }catch (Exception e){ + serialNumber = ""; } - - reader.close(); return serialNumber; } } diff --git a/youchain-system/src/main/java/com/youchain/modules/license/WindowsServerInfos.java b/youchain-system/src/main/java/com/youchain/modules/license/WindowsServerInfos.java index f6891f3..17044d8 100644 --- a/youchain-system/src/main/java/com/youchain/modules/license/WindowsServerInfos.java +++ b/youchain-system/src/main/java/com/youchain/modules/license/WindowsServerInfos.java @@ -1,63 +1,38 @@ package com.youchain.modules.license; -import java.net.InetAddress; -import java.util.List; import java.util.Scanner; -import java.util.stream.Collectors; /** *

用于获取客户Windows服务器的基本信息

*/ public class WindowsServerInfos extends AGxServerInfos { - @Override - protected List getIpAddress() throws Exception { - List result = null; - //获取所有网络接口 - List inetAddresses = getLocalAllInetAddress(); - - if(inetAddresses != null && inetAddresses.size() > 0){ - result = inetAddresses.stream().map(InetAddress::getHostAddress).distinct().map(String::toLowerCase).collect(Collectors.toList()); - } - - return result; - } - - @Override - protected List getMacAddress() throws Exception { - List result = null; - - //1. 获取所有网络接口 - List inetAddresses = getLocalAllInetAddress(); - - if(inetAddresses != null && inetAddresses.size() > 0){ - //2. 获取所有网络接口的Mac地址 - result = inetAddresses.stream().map(this::getMacByInetAddress).distinct().collect(Collectors.toList()); - } - - return result; - } @Override protected String getCPUSerial() throws Exception { //序列号 String serialNumber = ""; - //使用WMIC获取CPU序列号 - Process process = Runtime.getRuntime().exec("wmic cpu get processorid"); - process.getOutputStream().close(); - Scanner scanner = new Scanner(process.getInputStream()); + try{ + //使用WMIC获取CPU序列号 + Process process = Runtime.getRuntime().exec("wmic cpu get processorid"); + process.getOutputStream().close(); + Scanner scanner = new Scanner(process.getInputStream()); - if(scanner.hasNext()){ - scanner.next(); + if(scanner.hasNext()){ + scanner.next(); + } + + if(scanner.hasNext()){ + serialNumber = scanner.next().trim(); + } + + scanner.close(); + }catch (Exception e){ + serialNumber = ""; } - if(scanner.hasNext()){ - serialNumber = scanner.next().trim(); - } - - scanner.close(); return serialNumber; } @@ -66,20 +41,24 @@ public class WindowsServerInfos extends AGxServerInfos { //序列号 String serialNumber = ""; - //使用WMIC获取主板序列号 - Process process = Runtime.getRuntime().exec("wmic baseboard get serialnumber"); - process.getOutputStream().close(); - Scanner scanner = new Scanner(process.getInputStream()); + try{ + //使用WMIC获取主板序列号 + Process process = Runtime.getRuntime().exec("wmic baseboard get serialnumber"); + process.getOutputStream().close(); + Scanner scanner = new Scanner(process.getInputStream()); + + if(scanner.hasNext()){ + scanner.next(); + } + + if(scanner.hasNext()){ + serialNumber = scanner.next().trim(); + } + scanner.close(); + }catch (Exception e){ - if(scanner.hasNext()){ - scanner.next(); } - if(scanner.hasNext()){ - serialNumber = scanner.next().trim(); - } - - scanner.close(); return serialNumber; } diff --git a/youchain-system/src/main/java/com/youchain/modules/license/domain/LicenseCheck.java b/youchain-system/src/main/java/com/youchain/modules/license/domain/LicenseCheck.java index 3462cf8..be6afcc 100644 --- a/youchain-system/src/main/java/com/youchain/modules/license/domain/LicenseCheck.java +++ b/youchain-system/src/main/java/com/youchain/modules/license/domain/LicenseCheck.java @@ -1,7 +1,6 @@ package com.youchain.modules.license.domain; import java.io.Serializable; -import java.util.List; public class LicenseCheck implements Serializable { @@ -18,6 +17,18 @@ public class LicenseCheck implements Serializable { * 失效时间 */ private String endTime; + /** + * 文件创建时间 + */ + private String CreateTime; + + public String getCreateTime() { + return CreateTime; + } + + public void setCreateTime(String createTime) { + CreateTime = createTime; + } public String getEndTime() { return endTime; @@ -27,11 +38,12 @@ public class LicenseCheck implements Serializable { this.endTime = endTime; } - public LicenseCheck() { + public LicenseCheck(){ } + public String getCpuSerial() { return cpuSerial; } diff --git a/youchain-system/src/main/java/com/youchain/modules/security/rest/AuthorizationController.java b/youchain-system/src/main/java/com/youchain/modules/security/rest/AuthorizationController.java index e599cd4..fdc75ec 100644 --- a/youchain-system/src/main/java/com/youchain/modules/security/rest/AuthorizationController.java +++ b/youchain-system/src/main/java/com/youchain/modules/security/rest/AuthorizationController.java @@ -202,7 +202,7 @@ public class AuthorizationController { @ApiOperation("获取服务器信息") @AnonymousGetMapping(value = "/deviceinfo") public ResponseEntity getDeviceInfo() { - LicenseCheck licenseCheck= LicenseValidate.getDeviceInfo(); + LicenseCheck licenseCheck= LicenseValidate.getSystem_price(); String rest= Base64.encodeBase64String(JSONUtil.toJsonStr(licenseCheck).trim().getBytes()); return ResponseEntity.ok(rest); }