|
|
@@ -17,6 +17,7 @@ import org.springframework.web.multipart.MaxUploadSizeExceededException;
|
|
|
import org.springframework.web.reactive.resource.NoResourceFoundException;
|
|
|
import org.springframework.web.server.MethodNotAllowedException;
|
|
|
import org.springframework.web.server.MissingRequestValueException;
|
|
|
+import org.springframework.web.server.ResponseStatusException;
|
|
|
import org.springframework.web.server.ServerWebExchange;
|
|
|
import reactor.core.publisher.Mono;
|
|
|
|
|
|
@@ -68,7 +69,30 @@ public class GlobalExceptionHandler {
|
|
|
log.warn("接口异常 uri = {} e = {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
|
|
|
return RW.fail(e.getMessage(), Mono.just(e.getMessage()));
|
|
|
}
|
|
|
-
|
|
|
+ @ExceptionHandler(ResponseStatusException.class)
|
|
|
+ public Mono<RW<Object>> handleResponseStatusException(ServerWebExchange exchange, AccountExpiredException e) {
|
|
|
+ String clientIP=null ;
|
|
|
+ if ( Objects.nonNull(exchange.getRequest().getRemoteAddress())) {
|
|
|
+ if(Objects.nonNull(exchange.getRequest().getRemoteAddress().getAddress())){
|
|
|
+ clientIP = exchange.getRequest().getRemoteAddress().getAddress().getHostAddress();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ Mono<MultiValueMap<String, String>> formData = exchange.getFormData();
|
|
|
+ formData.subscribe(data -> {
|
|
|
+ log.error("接口异常 id:{} uri = {} body = {} ",l,exchange.getRequest().getPath().value(),data);
|
|
|
+ });
|
|
|
+ String hostName=null;
|
|
|
+ exchange.getRequest().getHeaders();
|
|
|
+ if(Objects.nonNull(exchange.getRequest().getHeaders().getHost())){
|
|
|
+ hostName = exchange.getRequest().getHeaders().getHost().getHostName();
|
|
|
+ }
|
|
|
+ String referer = exchange.getRequest().getHeaders().getFirst("Referer");
|
|
|
+ String origin = exchange.getRequest().getHeaders().getFirst("Origin");
|
|
|
+ log.error("接口异常 id:{} uri = {} e = {} ip:{} 主机名:{} Referer:{} origin:{}",
|
|
|
+ l, exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e),clientIP,hostName,referer,origin);
|
|
|
+ return RW.fail(e.getMessage(), Mono.just(e.getMessage()));
|
|
|
+ }
|
|
|
@ExceptionHandler(DataAccessException.class)
|
|
|
public Mono<RW<Object>> handleDataAccessException(ServerWebExchange exchange, DataAccessException e) {
|
|
|
log.error("接口异常 uri = {} e = {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
|