Merge remote-tracking branch 'origin/master' into wvp-28181-2.0
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | ptzXml.append("</Info>\r\n");
|
| | | ptzXml.append("</Control>\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;
|
| | |
| | | ptzXml.append("</Info>\r\n");
|
| | | ptzXml.append("</Control>\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) {
|
| | |
| | | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
|
| | | catalogXml.append("</Query>\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);
|
| | |
|
| | |
| | | "'${ipAddress}', ${port}, '${password}', ${PTZType}, ${status})") |
| | | int add(DeviceChannel channel); |
| | | |
| | | @Update("UPDATE device_channel " + |
| | | "SET name=#{name}, manufacture=#{manufacture}, model=#{model}, owner=#{owner}, civilCode=#{civilCode}, " + |
| | | "block=#{block}, address=#{address}, parental=#{parental}, parentId=#{parentId}, safetyWay=#{safetyWay}, " + |
| | | "registerWay=#{registerWay}, certNum=#{certNum}, certifiable=#{certifiable}, errCode=#{errCode}, secrecy=#{secrecy}, " + |
| | | "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status}, streamId=#{streamId}, " + |
| | | "hasAudio=#{hasAudio}" + |
| | | "WHERE deviceId=#{deviceId} AND channelId=#{channelId}") |
| | | // @Update("UPDATE device_channel " + |
| | | // "SET name=#{name}, manufacture=#{manufacture}, model=#{model}, owner=#{owner}, civilCode=#{civilCode}, " + |
| | | // "block=#{block}, address=#{address}, parental=#{parental}, parentId=#{parentId}, safetyWay=#{safetyWay}, " + |
| | | // "registerWay=#{registerWay}, certNum=#{certNum}, certifiable=#{certifiable}, errCode=#{errCode}, secrecy=#{secrecy}, " + |
| | | // "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status}, streamId=#{streamId}, " + |
| | | // "hasAudio=#{hasAudio}" + |
| | | // "WHERE deviceId=#{deviceId} AND channelId=#{channelId}") |
| | | |
| | | |
| | | @Update(value = {" <script>" + |
| | | "UPDATE device_channel " + |
| | | "SET deviceId='${deviceId}'" + |
| | | "<if test=\"name != null\">, name='${name}'</if>" + |
| | | "<if test=\"manufacture != null\">, manufacture='${manufacture}'</if>" + |
| | | "<if test=\"model != null\">, model='${model}'</if>" + |
| | | "<if test=\"owner != null\">, owner='${owner}'</if>" + |
| | | "<if test=\"civilCode != null\">, civilCode='${civilCode}'</if>" + |
| | | "<if test=\"block != null\">, block='${block}'</if>" + |
| | | "<if test=\"address != null\">, address='${address}'</if>" + |
| | | "<if test=\"parental != null\">, parental=${parental}</if>" + |
| | | "<if test=\"parentId != null\">, parentId='${parentId}'</if>" + |
| | | "<if test=\"safetyWay != null\">, safetyWay=${safetyWay}</if>" + |
| | | "<if test=\"registerWay != null\">, registerWay=${registerWay}</if>" + |
| | | "<if test=\"certNum != null\">, certNum='${certNum}'</if>" + |
| | | "<if test=\"certifiable != null\">, certifiable=${certifiable}</if>" + |
| | | "<if test=\"errCode != null\">, errCode=${errCode}</if>" + |
| | | "<if test=\"secrecy != null\">, secrecy='${secrecy}'</if>" + |
| | | "<if test=\"ipAddress != null\">, ipAddress='${ipAddress}'</if>" + |
| | | "<if test=\"port != null\">, port=${port}</if>" + |
| | | "<if test=\"password != null\">, password='${password}'</if>" + |
| | | "<if test=\"PTZType != null\">, PTZType=${PTZType}</if>" + |
| | | "<if test=\"status != null\">, status='${status}'</if>" + |
| | | "<if test=\"streamId != null\">, streamId='${streamId}'</if>" + |
| | | "<if test=\"hasAudio != null\">, hasAudio='${hasAudio}'</if>" + |
| | | "WHERE deviceId='${deviceId}' AND channelId='${channelId}'"+ |
| | | " </script>"}) |
| | | int update(DeviceChannel channel); |
| | | |
| | | @Select(value = {" <script>" + |
| | |
| | | int add(Device device); |
| | | |
| | | |
| | | @Update("UPDATE device " + |
| | | "SET name=#{name}, " + |
| | | "manufacturer=#{manufacturer}," + |
| | | "model=#{model}," + |
| | | "firmware=#{firmware}, " + |
| | | "transport=#{transport}," + |
| | | "streamMode=#{streamMode}, " + |
| | | "ip=#{ip}, " + |
| | | "port=#{port}, " + |
| | | "hostAddress=#{hostAddress}, " + |
| | | "online=#{online} " + |
| | | "WHERE deviceId=#{deviceId}") |
| | | @Update(value = {" <script>" + |
| | | "UPDATE device " + |
| | | "SET deviceId='${deviceId}'" + |
| | | "<if test=\"name != null\">, name='${name}'</if>" + |
| | | "<if test=\"manufacturer != null\">, manufacturer='${manufacturer}'</if>" + |
| | | "<if test=\"model != null\">, model='${model}'</if>" + |
| | | "<if test=\"firmware != null\">, firmware='${firmware}'</if>" + |
| | | "<if test=\"transport != null\">, transport='${transport}'</if>" + |
| | | "<if test=\"streamMode != null\">, streamMode='${streamMode}'</if>" + |
| | | "<if test=\"ip != null\">, ip='${ip}'</if>" + |
| | | "<if test=\"port != null\">, port=${port}</if>" + |
| | | "<if test=\"hostAddress != null\">, hostAddress='${hostAddress}'</if>" + |
| | | "<if test=\"online != null\">, online=${online}</if>" + |
| | | "WHERE deviceId='${deviceId}'"+ |
| | | " </script>"}) |
| | | int update(Device device); |
| | | |
| | | @Select("SELECT *, (SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount FROM device de") |