diff --git a/api/pom.xml b/api/pom.xml index 9c77e5b..69be0bd 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -43,10 +43,20 @@ springdoc-openapi-starter-common + + org.springframework.boot + spring-boot-starter-web + + org.projectlombok lombok compile + + + jakarta.servlet + jakarta.servlet-api + diff --git a/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java b/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java index d4dc919..b60dd10 100644 --- a/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java +++ b/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java @@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor; import org.springdoc.core.annotations.ParameterObject; import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; @Tag(name="历史录像") @@ -26,7 +27,7 @@ public class RecordController { } @GetJson("/getInfo") - public JsonResponse getInfo(@ParameterObject GetInfoDTO dto){ + public JsonResponse getInfo(@ParameterObject @Validated GetInfoDTO dto){ recordService.requestRecordInfo(dto.getDeviceId()); return JsonResponse.success(null); } diff --git a/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java b/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java index f1bfdab..11c5830 100644 --- a/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java +++ b/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java @@ -1,11 +1,13 @@ package cn.skcks.docking.gb28181.api.record.dto; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; @Schema(title = "查询历史录像") @Data public class GetInfoDTO { + @NotBlank @Schema(description = "设备id") private String deviceId; } diff --git a/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java b/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java index e66565c..f2d0d49 100644 --- a/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java +++ b/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java @@ -1,13 +1,22 @@ package cn.skcks.docking.gb28181.config; +import cn.skcks.docking.gb28181.interceptor.RequestInterceptor; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Slf4j @Configuration @RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { - + private final RequestInterceptor requestInterceptor; + @Override + public void addInterceptors(@NotNull InterceptorRegistry registry) { + registry.addInterceptor(requestInterceptor) + .excludePathPatterns("/swagger-ui/**","/v3/api-docs/**") + .addPathPatterns("/**"); + } } diff --git a/api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java b/api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java new file mode 100644 index 0000000..d0d0e0c --- /dev/null +++ b/api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java @@ -0,0 +1,20 @@ +package cn.skcks.docking.gb28181.interceptor; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +@Slf4j +@Component +@SuppressWarnings({"unused"}) +@RequiredArgsConstructor +public class RequestInterceptor implements HandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + log.info("{} 访问 {}",request.getRemoteHost(), request.getRequestURI()); + return true; + } +}