You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
3 years ago
|
package com.fr.plugin.xxxx.gjdbjj.sso;
|
||
|
|
||
|
import com.fr.log.FineLoggerFactory;
|
||
|
import com.fr.third.jodd.io.StreamUtil;
|
||
|
|
||
|
import javax.servlet.ReadListener;
|
||
|
import javax.servlet.ServletInputStream;
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import javax.servlet.http.HttpServletRequestWrapper;
|
||
|
import java.io.BufferedReader;
|
||
|
import java.io.ByteArrayInputStream;
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStreamReader;
|
||
|
|
||
|
/**
|
||
|
* @author fr.open
|
||
|
* @date 2019/7/2
|
||
|
*/
|
||
|
public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapper {
|
||
|
private BufferedReader br;
|
||
|
private byte[] body;
|
||
|
public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException {
|
||
|
super(request);
|
||
|
//this.br = request.getReader();
|
||
|
body = StreamUtil.readBytes(request.getReader(), "UTF-8");
|
||
|
FineLoggerFactory.getLogger().info("data is {}",new String(body));
|
||
|
}
|
||
|
|
||
|
public void setBody(byte[] body){
|
||
|
this.body =body;
|
||
|
}
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public BufferedReader getReader() throws IOException {
|
||
|
return new BufferedReader(new InputStreamReader(getInputStream()));
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ServletInputStream getInputStream() throws IOException {
|
||
|
final ByteArrayInputStream bais = new ByteArrayInputStream(body);
|
||
|
return new ServletInputStream() {
|
||
|
|
||
|
@Override
|
||
|
public boolean isFinished() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean isReady() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void setReadListener(ReadListener readListener) {
|
||
|
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public int read() throws IOException {
|
||
|
return bais.read();
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
}
|