From 45969a00b74b5a240c0dc6e2c37f5381cd0cb65f Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期四, 26 八月 2021 23:57:38 +0800
Subject: [PATCH] 修正设备注册认证时验证Response计算的错误

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
index 0c8d6c0..064d023 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
@@ -7,6 +7,7 @@
 
 import javax.sip.InvalidArgumentException;
 import javax.sip.RequestEvent;
+import javax.sip.ServerTransaction;
 import javax.sip.SipException;
 import javax.sip.header.AuthorizationHeader;
 import javax.sip.header.ContactHeader;
@@ -78,9 +79,9 @@
 			// 鏍¢獙瀵嗙爜鏄惁姝g‘
 			if (authorhead != null) {
 				passwordCorrect = new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request,
-						sipConfig.getSipPassword());
+						sipConfig.getPassword());
 			}
-			if (StringUtils.isEmpty(sipConfig.getSipPassword())){
+			if (StringUtils.isEmpty(sipConfig.getPassword())){
 				passwordCorrect = true;
 			}
 
@@ -93,7 +94,7 @@
 					logger.info("[{}] 瀵嗙爜閿欒 鍥炲401", requestAddress);
 				}
 				response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request);
-				new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getSipDomain());
+				new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain());
 			}else {
 				if (!passwordCorrect){
 					// 娉ㄥ唽澶辫触
@@ -112,7 +113,9 @@
 					ExpiresHeader expiresHeader = (ExpiresHeader) request.getHeader(Expires.NAME);
 					if (expiresHeader == null) {
 						response = getMessageFactory().createResponse(Response.BAD_REQUEST, request);
-						getServerTransaction(evt).sendResponse(response);
+						ServerTransaction serverTransaction = getServerTransaction(evt);
+						serverTransaction.sendResponse(response);
+						if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
 						return;
 					}
 					// 娣诲姞Contact澶�
@@ -159,7 +162,9 @@
 				}
 			}
 
-			getServerTransaction(evt).sendResponse(response);
+			ServerTransaction serverTransaction = getServerTransaction(evt);
+			serverTransaction.sendResponse(response);
+			if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
 			// 娉ㄥ唽鎴愬姛
 			// 淇濆瓨鍒皉edis
 			// 涓嬪彂catelog鏌ヨ鐩綍

--
Gitblit v1.8.0