Commit 7eba45c4 authored by 赵啸非's avatar 赵啸非

添加工作人员最后登录时间

parent cca74a5c
......@@ -67,8 +67,6 @@ public class AccessLogFilter implements GlobalFilter, Ordered {
private final List<HttpMessageReader<?>> messageReaders = HandlerStrategies.withDefaults().messageReaders();
/**
* 顺序必须是<-1,否则标准的NettyWriteResponseFilter将在您的过滤器得到一个被调用的机会之前发送响应
* 也就是说如果不小于 -1 ,将不会执行获取后端响应的逻辑
......@@ -108,9 +106,13 @@ public class AccessLogFilter implements GlobalFilter, Ordered {
accessLogPdu.setLogTime(new Date());
accessLogPdu.setMethod(request.getMethodValue());
log.info("origin uri:{} host:{} port:{}",requestPath,request.getHeaders().getHost().getHostName(),request.getHeaders().getHost().getPort());
log.info("origin uri:{} host:{} port:{},contentLens", requestPath, request.getHeaders().getHost().getHostName(), request.getHeaders().getHost().getPort(),request.getHeaders().getContentLength());
MediaType mediaType = request.getHeaders().getContentType();
if (request.getHeaders().getContentLength() > 1024 * 64) {
return chain.filter(exchange);
}
if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType) || MediaType.APPLICATION_JSON.isCompatibleWith(mediaType)) {
return writeBodyLog(exchange, chain, accessLogPdu);
} else {
......@@ -155,7 +157,6 @@ public class AccessLogFilter implements GlobalFilter, Ordered {
@SuppressWarnings("unchecked")
private Mono writeBodyLog(ServerWebExchange exchange, GatewayFilterChain chain, AccessLogPdu accessLogPdu) {
ServerRequest serverRequest = ServerRequest.create(exchange, messageReaders);
log.info("decoratedRequest 000");
Mono<String> modifiedBody = serverRequest.bodyToMono(String.class)
.flatMap(body -> {
log.info("decoratedRequest 0001111");
......@@ -164,42 +165,25 @@ public class AccessLogFilter implements GlobalFilter, Ordered {
});
// 通过 BodyInserter 插入 body(支持修改body), 避免 request body 只能获取一次
log.info("decoratedRequest 111");
BodyInserter bodyInserter = BodyInserters.fromPublisher(modifiedBody, String.class);
HttpHeaders headers = new HttpHeaders();
headers.putAll(exchange.getRequest().getHeaders());
headers.remove(HttpHeaders.CONTENT_LENGTH);
CachedBodyOutputMessage outputMessage = new CachedBodyOutputMessage(exchange, headers);
log.info("decoratedRequest 0");
return bodyInserter.insert(outputMessage, new BodyInserterContext())
.then(Mono.defer(() -> {
Flux<DataBuffer> dataBuffers = Flux.from(outputMessage.getBody());
return DataBufferUtils.join(dataBuffers)
.doOnNext(buffer -> {
outputMessage.bufferFactory().wrap(buffer.asByteBuffer());
})
.doOnError(error -> {
// DataBufferUtils.release(dataBuffers);
})
.flatMap(buffer -> outputMessage.writeWith(Mono.just(buffer)));
// 重新封装请求
ServerHttpRequest decoratedRequest = requestDecorate(exchange, headers, outputMessage);
// 记录响应日志
ServerHttpResponseDecorator decoratedResponse = recordResponseLog(exchange, accessLogPdu);
// 记录普通的
return chain.filter(exchange.mutate().request(decoratedRequest).response(decoratedResponse).build())
.then(Mono.fromRunnable(() -> {
// 打印日志 并发送
writeAccessLog(accessLogPdu);
}));
}));
// return bodyInserter.insert(outputMessage, new BodyInserterContext())
// .then(Mono.defer(() -> {
// // 重新封装请求
// Flux<DataBuffer> dataBuffers = Flux.from(outputMessage.getBody());
// log.info("decoratedRequest 1");
// ServerHttpRequest decoratedRequest = requestDecorate(exchange, headers, outputMessage);
// // 记录响应日志
// ServerHttpResponseDecorator decoratedResponse = recordResponseLog(exchange, accessLogPdu);
// // 记录普通的
// return chain.filter(exchange.mutate().request(decoratedRequest).response(decoratedResponse).build())
// .then(Mono.fromRunnable(() -> {
// // 打印日志 并发送
// writeAccessLog(accessLogPdu);
// }));
// }));
}
private void writeAccessLog(AccessLogPdu accessLogPdu) {
......@@ -228,7 +212,7 @@ public class AccessLogFilter implements GlobalFilter, Ordered {
@Override
public HttpHeaders getHeaders() {
long contentLength = headers.getContentLength();
log.info("decoratedRequest contentLength:"+contentLength);
log.info("decoratedRequest contentLength:" + contentLength);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.putAll(super.getHeaders());
if (contentLength > 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment