From 456f90cd25edf82b11f5c6cbc855aaa1dd8828b3 Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: Wed, 23 Jun 2021 15:54:43 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=89=93=E5=8C=85jar?= =?UTF-8?q?=E5=90=8E=E6=88=AA=E5=9B=BE=E8=B7=AF=E5=BE=84=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=88=AA=E5=9B=BETimeout=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/service/impl/PlayServiceImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java index 320cc260..540a66e9 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java @@ -96,15 +96,16 @@ public class PlayServiceImpl implements IPlayService { try { String classPath = ResourceUtils.getURL("classpath:").getPath(); // System.out.println(classPath); - String path = classPath + "static/static/snap/"; + // 兼容打包为jar的class路径 if(classPath.contains("jar")) { classPath = classPath.substring(0, classPath.lastIndexOf(".")); - classPath = classPath.substring(0, classPath.lastIndexOf("/")); - path = classPath + "/snap/"; + classPath = classPath.substring(0, classPath.lastIndexOf("/") + 1); } - if (path.startsWith("file:")) { - path = path.substring(path.indexOf(":") + 1, path.length()); + if (classPath.startsWith("file:")) { + classPath = classPath.substring(classPath.indexOf(":") + 1, classPath.length()); } + String path = classPath + "static/static/snap/"; + // 兼容Windows系统路径(去除前面的“/”) if(System.getProperty("os.name").contains("indows")) { path = path.substring(1, path.length()); } @@ -116,7 +117,7 @@ public class PlayServiceImpl implements IPlayService { StreamInfo streamInfoForSuccess = (StreamInfo)wvpResult.getData(); String flvUrl = streamInfoForSuccess.getFlv(); // 请求截图 - zlmresTfulUtils.getSnap(flvUrl, 5, 1, path, fileName); + zlmresTfulUtils.getSnap(flvUrl, 15, 1, path, fileName); } } System.out.println(path); From 4ad394f7711514f56b6bf36d70d89c16e748d186 Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: Wed, 23 Jun 2021 15:58:43 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=94=99=E8=A1=8C?= =?UTF-8?q?=E5=8F=8ASwagger=E5=8F=82=E6=95=B0=E7=BC=BA=E5=B0=91dataTypeCla?= =?UTF-8?q?ss=E5=AE=9A=E4=B9=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java index 776acbf2..02894cc3 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java @@ -132,15 +132,14 @@ public class DeviceQuery { */ @ApiOperation("同步设备通道") @ApiImplicitParams({ - @ApiImplicitParam(name="deviceId", value = "设备id", required = true ,dataTypeClass = String.class), + @ApiImplicitParam(name="deviceId", value = "设备id", required = true, dataTypeClass = String.class), }) @PostMapping("/devices/{deviceId}/sync") public DeferredResult> devicesSync(@PathVariable String deviceId){ if (logger.isDebugEnabled()) { - } logger.debug("设备通道信息同步API调用,deviceId:" + deviceId); - + } Device device = storager.queryVideoDevice(deviceId); cmder.catalogQuery(device, event -> { Response response = event.getResponse(); @@ -264,7 +263,7 @@ public class DeviceQuery { @ApiImplicitParams({ @ApiImplicitParam(name = "deviceId", value = "设备id", required = true, dataTypeClass = String.class), @ApiImplicitParam(name = "streamMode", value = "数据流传输模式, 取值:" + - "UDP(udp传输),TCP-ACTIVE(tcp主动模式,暂不支持),TCP-PASSIVE(tcp被动模式)"), + "UDP(udp传输),TCP-ACTIVE(tcp主动模式,暂不支持),TCP-PASSIVE(tcp被动模式)", dataTypeClass = String.class), }) @PostMapping("/transport/{deviceId}/{streamMode}") public ResponseEntity updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ From 2c0240e16f837aef6ce94aa48d862cc48e2c0cf0 Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: Wed, 23 Jun 2021 16:01:28 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=B1=8F=E8=94=BD=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DigestServerAuthenticationHelper.java | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java b/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java index e6d8d54a..234920e0 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java @@ -239,58 +239,58 @@ public class DigestServerAuthenticationHelper { } - public static void main(String[] args) throws NoSuchAlgorithmException { - String realm = "3402000000"; - String username = "44010000001180008012"; +// public static void main(String[] args) throws NoSuchAlgorithmException { +// String realm = "3402000000"; +// String username = "44010000001180008012"; - String nonce = "07cab60999fbf643264ace27d3b7de8b"; - String uri = "sip:34020000002000000001@3402000000"; - // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略 - String qop = "auth"; +// String nonce = "07cab60999fbf643264ace27d3b7de8b"; +// String uri = "sip:34020000002000000001@3402000000"; +// // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略 +// String qop = "auth"; - // 客户端随机数,这是一个不透明的字符串值,由客户端提供,并且客户端和服务器都会使用,以避免用明文文本。 - // 这使得双方都可以查验对方的身份,并对消息的完整性提供一些保护 - //String cNonce = authHeader.getCNonce(); +// // 客户端随机数,这是一个不透明的字符串值,由客户端提供,并且客户端和服务器都会使用,以避免用明文文本。 +// // 这使得双方都可以查验对方的身份,并对消息的完整性提供一些保护 +// //String cNonce = authHeader.getCNonce(); - // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量 - int nc = 1; - String ncStr = new DecimalFormat("00000000").format(nc); -// String ncStr = new DecimalFormat("00000000").format(Integer.parseInt(nc + "", 16)); - MessageDigest messageDigest = MessageDigest.getInstance(DEFAULT_ALGORITHM); - String A1 = username + ":" + realm + ":" + "12345678"; - String A2 = "REGISTER" + ":" + uri; - byte mdbytes[] = messageDigest.digest(A1.getBytes()); - String HA1 = toHexString(mdbytes); - System.out.println("A1: " + A1); - System.out.println("A2: " + A2); +// // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量 +// int nc = 1; +// String ncStr = new DecimalFormat("00000000").format(nc); +// // String ncStr = new DecimalFormat("00000000").format(Integer.parseInt(nc + "", 16)); +// MessageDigest messageDigest = MessageDigest.getInstance(DEFAULT_ALGORITHM); +// String A1 = username + ":" + realm + ":" + "12345678"; +// String A2 = "REGISTER" + ":" + uri; +// byte mdbytes[] = messageDigest.digest(A1.getBytes()); +// String HA1 = toHexString(mdbytes); +// System.out.println("A1: " + A1); +// System.out.println("A2: " + A2); - mdbytes = messageDigest.digest(A2.getBytes()); - String HA2 = toHexString(mdbytes); - System.out.println("HA1: " + HA1); - System.out.println("HA2: " + HA2); - String cnonce = "0a4f113b"; - System.out.println("nonce: " + nonce); - System.out.println("nc: " + ncStr); - System.out.println("cnonce: " + cnonce); - System.out.println("qop: " + qop); - String KD = HA1 + ":" + nonce; +// mdbytes = messageDigest.digest(A2.getBytes()); +// String HA2 = toHexString(mdbytes); +// System.out.println("HA1: " + HA1); +// System.out.println("HA2: " + HA2); +// String cnonce = "0a4f113b"; +// System.out.println("nonce: " + nonce); +// System.out.println("nc: " + ncStr); +// System.out.println("cnonce: " + cnonce); +// System.out.println("qop: " + qop); +// String KD = HA1 + ":" + nonce; - if (qop != null && qop.equals("auth") ) { - if (nc != -1) { - KD += ":" + ncStr; - } - if (cnonce != null) { - KD += ":" + cnonce; - } - KD += ":" + qop; - } - KD += ":" + HA2; - System.out.println("KD: " + KD); - mdbytes = messageDigest.digest(KD.getBytes()); - String mdString = toHexString(mdbytes); - System.out.println("mdString: " + mdString); - String response = "4f0507d4b87cdecff04bdaf4c96348f0"; - System.out.println("response: " + response); - } +// if (qop != null && qop.equals("auth") ) { +// if (nc != -1) { +// KD += ":" + ncStr; +// } +// if (cnonce != null) { +// KD += ":" + cnonce; +// } +// KD += ":" + qop; +// } +// KD += ":" + HA2; +// System.out.println("KD: " + KD); +// mdbytes = messageDigest.digest(KD.getBytes()); +// String mdString = toHexString(mdbytes); +// System.out.println("mdString: " + mdString); +// String response = "4f0507d4b87cdecff04bdaf4c96348f0"; +// System.out.println("response: " + response); +// } } From e11946320904bae07c582cdb3d30b7477820f37e Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: Wed, 23 Jun 2021 16:10:37 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transmit/request/impl/MessageRequestProcessor.java | 1 - .../genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 1 + .../com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java | 2 -- .../com/genersoft/iot/vmp/onvif/impl/ONVIFServerIMpl.java | 1 + .../vmp/vmanager/gb28181/gbStream/GbStreamController.java | 4 ++-- .../iot/vmp/vmanager/record/RecoderProxyController.java | 6 ++++-- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java index 1842efe2..9d282c68 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java @@ -2,7 +2,6 @@ package com.genersoft.iot.vmp.gb28181.transmit.request.impl; import java.io.ByteArrayInputStream; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; import javax.sip.address.SipURI; diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java index 77add282..ed407d29 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Component; import java.util.*; +@SuppressWarnings("unchecked") @Component public class ZLMMediaListManager { diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java index d0c88b08..8425d039 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java @@ -4,12 +4,10 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.conf.MediaConfig; import okhttp3.*; -import org.checkerframework.checker.units.qual.A; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.*; diff --git a/src/main/java/com/genersoft/iot/vmp/onvif/impl/ONVIFServerIMpl.java b/src/main/java/com/genersoft/iot/vmp/onvif/impl/ONVIFServerIMpl.java index afeee1cd..d952cc8f 100644 --- a/src/main/java/com/genersoft/iot/vmp/onvif/impl/ONVIFServerIMpl.java +++ b/src/main/java/com/genersoft/iot/vmp/onvif/impl/ONVIFServerIMpl.java @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +@SuppressWarnings("rawtypes") /** * 处理onvif的各种操作 */ diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java index 36535a36..fcfc8471 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java @@ -56,7 +56,7 @@ public class GbStreamController { */ @ApiOperation("移除国标关联") @ApiImplicitParams({ - @ApiImplicitParam(name = "gbStreamParam", value = "GbStreamParam", required = true , + @ApiImplicitParam(name = "gbStreamParam", value = "GbStreamParam", required = true, dataTypeClass = GbStreamParam.class), }) @DeleteMapping(value = "/del") @@ -77,7 +77,7 @@ public class GbStreamController { */ @ApiOperation("保存国标关联") @ApiImplicitParams({ - @ApiImplicitParam(name = "gbStreamParam", value = "GbStreamParam", required = true , dataTypeClass = GbStreamParam.class), + @ApiImplicitParam(name = "gbStreamParam", value = "GbStreamParam", required = true, dataTypeClass = GbStreamParam.class), }) @PostMapping(value = "/add") @ResponseBody diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/record/RecoderProxyController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/record/RecoderProxyController.java index a0df19b9..734f62f2 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/record/RecoderProxyController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/record/RecoderProxyController.java @@ -14,6 +14,8 @@ import org.springframework.web.client.RestTemplate; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @RestController @@ -31,7 +33,7 @@ public class RecoderProxyController { @ResponseBody @RequestMapping(value = "/**/**/**", produces = "application/json;charset=UTF-8") - public Object proxy(HttpServletRequest request, HttpServletResponse response){ + public Object proxy(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException{ String baseRequestURI = request.getRequestURI(); @@ -51,7 +53,7 @@ public class RecoderProxyController { mediaInfo.getSdpIp(), mediaConfig.getRecordAssistPort(), baseRequestURI.substring(baseRequestURI.indexOf(mediaId) + mediaId.length()), - URLDecoder.decode(request.getQueryString()) + URLDecoder.decode(request.getQueryString(), "UTF-8") ); // 发送请求 RestTemplate restTemplate = new RestTemplate();