修复可空时间参数的校验 #784

2.6.7
648540858 2023-03-21 17:43:33 +08:00
parent eb173b1b24
commit bc7cc73d52
4 changed files with 39 additions and 26 deletions

View File

@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
@ -43,6 +44,17 @@ public class GlobalExceptionHandler {
return WVPResult.fail(ErrorCode.ERROR400); return WVPResult.fail(ErrorCode.ERROR400);
} }
/**
*
* @param e
* @return
*/
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public WVPResult<String> exceptionHandler(HttpRequestMethodNotSupportedException e) {
return WVPResult.fail(ErrorCode.ERROR400);
}
/** /**
* controller * controller

View File

@ -71,11 +71,11 @@ public class AlarmController {
if (ObjectUtils.isEmpty(deviceIds)) { if (ObjectUtils.isEmpty(deviceIds)) {
deviceIds = null; deviceIds = null;
} }
if (ObjectUtils.isEmpty(time)) { if (ObjectUtils.isEmpty(time)) {
time = null; time = null;
} }else if (!DateUtil.verification(time, DateUtil.formatter) ){
if (!DateUtil.verification(time, DateUtil.formatter) ){ throw new ControllerException(ErrorCode.ERROR400.getCode(), "time格式为" + DateUtil.PATTERN);
return null;
} }
List<String> deviceIdList = null; List<String> deviceIdList = null;
if (deviceIds != null) { if (deviceIds != null) {
@ -170,16 +170,17 @@ public class AlarmController {
if (ObjectUtils.isEmpty(alarmType)) { if (ObjectUtils.isEmpty(alarmType)) {
alarmType = null; alarmType = null;
} }
if (ObjectUtils.isEmpty(startTime)) { if (ObjectUtils.isEmpty(startTime)) {
startTime = null; startTime = null;
}else if (!DateUtil.verification(startTime, DateUtil.formatter) ){
throw new ControllerException(ErrorCode.ERROR400.getCode(), "startTime格式为" + DateUtil.PATTERN);
} }
if (ObjectUtils.isEmpty(endTime)) { if (ObjectUtils.isEmpty(endTime)) {
endTime = null; endTime = null;
} }else if (!DateUtil.verification(endTime, DateUtil.formatter) ){
throw new ControllerException(ErrorCode.ERROR400.getCode(), "endTime格式为" + DateUtil.PATTERN);
if (!DateUtil.verification(startTime, DateUtil.formatter) || !DateUtil.verification(endTime, DateUtil.formatter)){
throw new ControllerException(ErrorCode.ERROR100.getCode(), "开始时间或结束时间格式有误");
} }
return deviceAlarmService.getAllAlarm(page, count, deviceId, alarmPriority, alarmMethod, return deviceAlarmService.getAllAlarm(page, count, deviceId, alarmPriority, alarmMethod,

View File

@ -3,33 +3,30 @@ package com.genersoft.iot.vmp.vmanager.gb28181.record;
import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.exception.ControllerException; import com.genersoft.iot.vmp.conf.exception.ControllerException;
import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException; import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.RecordInfo;
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.service.IDeviceService; import com.genersoft.iot.vmp.service.IDeviceService;
import com.genersoft.iot.vmp.service.IPlayService; import com.genersoft.iot.vmp.service.IPlayService;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.utils.DateUtil; import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import com.genersoft.iot.vmp.vmanager.bean.StreamContent; import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.context.request.async.DeferredResult;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.RecordInfo;
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import javax.sip.InvalidArgumentException; import javax.sip.InvalidArgumentException;
import javax.sip.SipException; import javax.sip.SipException;
import java.text.ParseException; import java.text.ParseException;
@ -74,10 +71,10 @@ public class GBRecordController {
} }
DeferredResult<WVPResult<RecordInfo>> result = new DeferredResult<>(); DeferredResult<WVPResult<RecordInfo>> result = new DeferredResult<>();
if (!DateUtil.verification(startTime, DateUtil.formatter)){ if (!DateUtil.verification(startTime, DateUtil.formatter)){
throw new ControllerException(ErrorCode.ERROR100.getCode(), "startTime error, format is " + DateUtil.PATTERN); throw new ControllerException(ErrorCode.ERROR100.getCode(), "startTime格式为" + DateUtil.PATTERN);
} }
if (!DateUtil.verification(endTime, DateUtil.formatter)){ if (!DateUtil.verification(endTime, DateUtil.formatter)){
throw new ControllerException(ErrorCode.ERROR100.getCode(), "endTime error, format is " + DateUtil.PATTERN); throw new ControllerException(ErrorCode.ERROR100.getCode(), "endTime格式为" + DateUtil.PATTERN);
} }
Device device = storager.queryVideoDevice(deviceId); Device device = storager.queryVideoDevice(deviceId);

View File

@ -60,18 +60,21 @@ public class LogController {
if (ObjectUtils.isEmpty(query)) { if (ObjectUtils.isEmpty(query)) {
query = null; query = null;
} }
if (ObjectUtils.isEmpty(startTime)) {
startTime = null;
}
if (ObjectUtils.isEmpty(endTime)) {
endTime = null;
}
if (!userSetting.getLogInDatebase()) { if (!userSetting.getLogInDatebase()) {
logger.warn("自动记录日志功能已关闭,查询结果可能不完整。"); logger.warn("自动记录日志功能已关闭,查询结果可能不完整。");
} }
if (!DateUtil.verification(startTime, DateUtil.formatter) || !DateUtil.verification(endTime, DateUtil.formatter)){ if (ObjectUtils.isEmpty(startTime)) {
throw new ControllerException(ErrorCode.ERROR400); startTime = null;
}else if (!DateUtil.verification(startTime, DateUtil.formatter) ){
throw new ControllerException(ErrorCode.ERROR400.getCode(), "startTime格式为" + DateUtil.PATTERN);
}
if (ObjectUtils.isEmpty(endTime)) {
endTime = null;
}else if (!DateUtil.verification(endTime, DateUtil.formatter) ){
throw new ControllerException(ErrorCode.ERROR400.getCode(), "endTime格式为" + DateUtil.PATTERN);
} }
return logService.getAll(page, count, query, type, startTime, endTime); return logService.getAll(page, count, query, type, startTime, endTime);