From 0802677d0b609abc8de0f0d882c6dbf483fc1987 Mon Sep 17 00:00:00 2001 From: 64850858 <648540858@qq.com> Date: 星期五, 25 六月 2021 16:58:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/vmanager/record/RecoderProxyController.java | 6 + src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 13 ++-- src/main/java/com/genersoft/iot/vmp/onvif/impl/ONVIFServerIMpl.java | 1 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java | 2 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 7 +- src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java | 96 ++++++++++++++++---------------- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 1 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 1 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java | 4 9 files changed, 66 insertions(+), 65 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 e6d8d54..234920e 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 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); +// } } 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 1842efe..9d282c6 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 @@ 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 77add28..ed407d2 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 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 d0c88b0..8425d03 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.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 afeee1c..d952cc8 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.List; import java.util.Map; +@SuppressWarnings("rawtypes") /** * 澶勭悊onvif鐨勫悇绉嶆搷浣� */ 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 6d0bbf1..535c790 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 @@ try { String classPath = ResourceUtils.getURL("classpath:").getPath(); // System.out.println(classPath); - String path = classPath + "static/static/snap/"; + // 鍏煎鎵撳寘涓簀ar鐨刢lass璺緞 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 @@ StreamInfo streamInfoForSuccess = (StreamInfo)wvpResult.getData(); String streamUrl = streamInfoForSuccess.getFmp4(); // 璇锋眰鎴浘 - zlmresTfulUtils.getSnap(streamUrl, 5, 1, path, fileName); + zlmresTfulUtils.getSnap(streamUrl, 15, 1, path, fileName); } } System.out.println(path); 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 776acbf..02894cc 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 @@ */ @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<ResponseEntity<Device>> devicesSync(@PathVariable String deviceId){ if (logger.isDebugEnabled()) { - } logger.debug("璁惧閫氶亾淇℃伅鍚屾API璋冪敤锛宒eviceId锛�" + deviceId); - + } Device device = storager.queryVideoDevice(deviceId); cmder.catalogQuery(device, event -> { Response response = event.getResponse(); @@ -264,7 +263,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "deviceId", value = "璁惧id", required = true, dataTypeClass = String.class), @ApiImplicitParam(name = "streamMode", value = "鏁版嵁娴佷紶杈撴ā寮�, 鍙栧�硷細" + - "UDP锛坲dp浼犺緭锛夛紝TCP-ACTIVE锛坱cp涓诲姩妯″紡,鏆備笉鏀寔锛夛紝TCP-PASSIVE锛坱cp琚姩妯″紡锛�"), + "UDP锛坲dp浼犺緭锛夛紝TCP-ACTIVE锛坱cp涓诲姩妯″紡,鏆備笉鏀寔锛夛紝TCP-PASSIVE锛坱cp琚姩妯″紡锛�", dataTypeClass = String.class), }) @PostMapping("/transport/{deviceId}/{streamMode}") public ResponseEntity<PageInfo> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ 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 36535a3..fcfc847 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 @@ */ @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 @@ */ @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 a0df19b..734f62f 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 javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @RestController @@ -31,7 +33,7 @@ @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 @@ 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(); -- Gitblit v1.8.0