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 16ed56a3..a754a76e 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 @@ -235,55 +235,4 @@ public class DigestServerAuthenticationHelper { return mdString.equals(response); } - - - public static void main(String[] args) throws NoSuchAlgorithmException { - MessageDigest messageDigest2 = MessageDigest.getInstance(DEFAULT_ALGORITHM); - String realm = "DS-2CD2520F"; - String username = "admin"; - String passwd = "12345"; - - String nonce = "4d6a553452444d30525441364e6d4d304e6a68684e47553d"; - - String uri = "/ISAPI/Streaming/channels/101/picture"; - // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略 - String qop = "auth"; - - // 客户端随机数,这是一个不透明的字符串值,由客户端提供,并且客户端和服务器都会使用,以避免用明文文本。 - // 这使得双方都可以查验对方的身份,并对消息的完整性提供一些保护 - String cNonce = "C1A5298F939E87E8F962A5EDFC206918"; - - // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量 - int nc = 1; - - String A1 = username + ":" + realm + ":" + passwd; - System.out.println("A1: " + A1); - String A2 = "GET" + ":" + uri.toString(); - System.out.println("A2: " + A2); - byte mdbytes[] = messageDigest2.digest(A1.getBytes()); - String HA1 = toHexString(mdbytes); - System.out.println("HA1: " + HA1); - - mdbytes = messageDigest2.digest(A2.getBytes()); - String HA2 = toHexString(mdbytes); - System.out.println("HA2: " + HA2); - String cnonce = "93d4d37df32e1a85"; - String KD = HA1 + ":" + nonce; - - if (nc != -1) { - KD += ":" + "00000001"; - } - if (cnonce != null) { - KD += ":" + cnonce; - } - if (qop != null) { - KD += ":" + qop; - } - KD += ":" + HA2; - System.out.println("KD: " + KD); - mdbytes = messageDigest2.digest(KD.getBytes()); - String mdString = toHexString(mdbytes); - String response = "3993a815e5cdaf4470e9b4f9bd41cf4a"; - System.out.println(mdString); - } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index 5da4b8dd..26d0f234 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -232,7 +232,7 @@ public class SIPCommander implements ISIPCommander { ptzXml.append("\r\n"); ptzXml.append("\r\n"); - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag"); + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", null); transmitRequest(device, request); return true; @@ -268,7 +268,7 @@ public class SIPCommander implements ISIPCommander { ptzXml.append("\r\n"); ptzXml.append("\r\n"); - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag"); + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", null); transmitRequest(device, request); return true; } catch (SipException | ParseException | InvalidArgumentException e) { @@ -635,7 +635,7 @@ public class SIPCommander implements ISIPCommander { catalogXml.append("" + device.getDeviceId() + "\r\n"); catalogXml.append("\r\n"); - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", "ToDeviceInfoTag"); + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", null); transmitRequest(device, request);