|
|
@@ -22,6 +22,7 @@ import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.HttpInputMessage;
|
|
|
import org.springframework.http.converter.HttpMessageConverter;
|
|
|
import org.springframework.lang.NonNull;
|
|
|
+import org.springframework.util.StreamUtils;
|
|
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
|
import org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter;
|
|
|
|
|
|
@@ -57,8 +58,11 @@ public class SecretRequestAdvice extends RequestBodyAdviceAdapter {
|
|
|
// 读取请求头
|
|
|
HttpHeaders headers = inputMessage.getHeaders();
|
|
|
// 读取请求体
|
|
|
- byte[] body = new byte[inputMessage.getBody().available()];
|
|
|
- int len = inputMessage.getBody().read(body);
|
|
|
+ // available()只是估值,不可靠
|
|
|
+ // byte[] body = new byte[inputMessage.getBody().available()]
|
|
|
+ // int len = inputMessage.getBody().read(body)
|
|
|
+ byte[] body = StreamUtils.copyToByteArray(inputMessage.getBody());
|
|
|
+ int len = body.length;
|
|
|
log.debug("读取数据长度:{}", len);
|
|
|
|
|
|
if (!checkSignature(headers, body)) {
|