new
This commit is contained in:
@@ -46,46 +46,49 @@ public class BodyDecryptGlobalFilter implements GlobalFilter, Ordered {
|
||||
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
|
||||
return DataBufferUtils.join(request.getBody())
|
||||
.flatMap(dataBuffer -> {
|
||||
byte[] bytes = new byte[dataBuffer.readableByteCount()];
|
||||
dataBuffer.read(bytes);
|
||||
DataBufferUtils.release(dataBuffer);
|
||||
if(request.getMethod().equals("POST")) {
|
||||
return DataBufferUtils.join(request.getBody())
|
||||
.flatMap(dataBuffer -> {
|
||||
byte[] bytes = new byte[dataBuffer.readableByteCount()];
|
||||
dataBuffer.read(bytes);
|
||||
DataBufferUtils.release(dataBuffer);
|
||||
|
||||
String bodyString = new String(bytes);
|
||||
String bodyString = new String(bytes);
|
||||
|
||||
// 这里可以对bodyString进行任何你需要的操作,比如日志记录或修改内容
|
||||
System.out.println("请求解密前: " + bodyString);
|
||||
// 这里可以对bodyString进行任何你需要的操作,比如日志记录或修改内容
|
||||
System.out.println("请求解密前: " + bodyString);
|
||||
|
||||
String decrypt = AESUtil.decrypt(bodyString);
|
||||
String decrypt = AESUtil.decrypt(bodyString);
|
||||
|
||||
|
||||
// 重新创建一个新的请求对象
|
||||
Flux<DataBuffer> bodyFlux = Flux.defer(() -> {
|
||||
DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(decrypt.getBytes());
|
||||
System.out.println("请求解密后: " + bodyString);
|
||||
return Mono.just(buffer);
|
||||
// 重新创建一个新的请求对象
|
||||
Flux<DataBuffer> bodyFlux = Flux.defer(() -> {
|
||||
DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(decrypt.getBytes());
|
||||
System.out.println("请求解密后: " + decrypt);
|
||||
return Mono.just(buffer);
|
||||
});
|
||||
|
||||
ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator(request) {
|
||||
@Override
|
||||
public Flux<DataBuffer> getBody() {
|
||||
return bodyFlux;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public HttpHeaders getHeaders() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.addAll(super.getHeaders());
|
||||
headers.remove(HttpHeaders.CONTENT_LENGTH);
|
||||
headers.setContentLength(bytes.length);
|
||||
return headers;
|
||||
}
|
||||
};
|
||||
|
||||
return chain.filter(exchange.mutate().request(mutatedRequest).build());
|
||||
});
|
||||
|
||||
ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator(request) {
|
||||
@Override
|
||||
public Flux<DataBuffer> getBody() {
|
||||
return bodyFlux;
|
||||
}
|
||||
@NonNull
|
||||
@Override
|
||||
public HttpHeaders getHeaders() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.addAll(super.getHeaders());
|
||||
headers.remove(HttpHeaders.CONTENT_LENGTH);
|
||||
headers.setContentLength(bytes.length);
|
||||
return headers;
|
||||
}
|
||||
};
|
||||
|
||||
return chain.filter(exchange.mutate().request(mutatedRequest).build());
|
||||
});
|
||||
|
||||
}
|
||||
return chain.filter(exchange);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -31,8 +31,8 @@ import java.nio.charset.StandardCharsets;
|
||||
* @since 0.0.1
|
||||
*/
|
||||
|
||||
//@Configuration
|
||||
//@Component
|
||||
@Configuration
|
||||
@Component
|
||||
public class ResponseEncryptionGlobalFilter implements GlobalFilter, Ordered {
|
||||
private static final String AES_SECURTY = "MTIzNDU2Nzg5MTIzNDU2Nw==";//1234567891234567
|
||||
private static final Logger log = LogManager.getLogger();
|
||||
|
||||
Reference in New Issue
Block a user