支持手动添加,为设备设置单独的密码

This commit is contained in:
648540858
2022-10-18 17:02:05 +08:00
parent 882e6a027e
commit 3c52a16e5f
19 changed files with 277 additions and 265 deletions

View File

@@ -172,6 +172,9 @@ public class Device {
@Schema(description = "树类型 国标规定了两种树的展现方式 行政区划CivilCode 和业务分组:BusinessGroup")
private String treeType;
@Schema(description = "密码")
private String password;
public String getDeviceId() {
return deviceId;
@@ -381,4 +384,11 @@ public class Device {
this.treeType = treeType;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

View File

@@ -107,7 +107,7 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
if (totalReaderCount <= 0) {
logger.info("[收到bye] {} 无其它观看者,通知设备停止推流", streamId);
if (sendRtpItem.getPlayType().equals(InviteStreamType.PLAY)) {
Device device = deviceService.queryDevice(sendRtpItem.getDeviceId());
Device device = deviceService.getDevice(sendRtpItem.getDeviceId());
if (device == null) {
logger.info("[收到bye] {} 通知设备停止推流时未找到设备信息", streamId);
}

View File

@@ -21,7 +21,6 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import javax.sip.RequestEvent;
import javax.sip.SipException;
@@ -82,9 +81,10 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
AddressImpl address = (AddressImpl) fromHeader.getAddress();
SipUri uri = (SipUri) address.getURI();
String deviceId = uri.getUser();
Device device = deviceService.getDevice(deviceId);
String password = (device != null && !ObjectUtils.isEmpty(device.getPassword()))? device.getPassword() : sipConfig.getPassword();
AuthorizationHeader authHead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME);
if (authHead == null && !ObjectUtils.isEmpty(sipConfig.getPassword())) {
if (authHead == null && !ObjectUtils.isEmpty(password)) {
logger.info("[注册请求] 未携带授权头 回复401: {}", requestAddress);
response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request);
new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain());
@@ -93,8 +93,8 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
}
// 校验密码是否正确
passwordCorrect = ObjectUtils.isEmpty(sipConfig.getPassword()) ||
new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request, sipConfig.getPassword());
passwordCorrect = ObjectUtils.isEmpty(password) ||
new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request, password);
if (!passwordCorrect) {
// 注册失败
@@ -105,8 +105,6 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
return;
}
Device device = deviceService.queryDevice(deviceId);
// 携带授权头并且密码正确
response = getMessageFactory().createResponse(Response.OK, request);
// 添加date头

View File

@@ -43,20 +43,9 @@ public class DeviceInfoResponseMessageHandler extends SIPRequestProcessorParent
@Autowired
private ResponseMessageHandler responseMessageHandler;
@Autowired
private IVideoManagerStorage storager;
@Autowired
private IRedisCatchStorage redisCatchStorage;
@Autowired
private DeferredResultHolder deferredResultHolder;
@Autowired
private SipConfig config;
@Autowired
private EventPublisher publisher;
@Autowired
private IDeviceService deviceService;