| | |
| | | package com.zy.asrs.wms.common.security; |
| | | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.WriteListener; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.servlet.http.HttpServletResponseWrapper; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.PrintWriter; |
| | | |
| | | public class CachedBodyHttpServletResponse extends HttpServletResponseWrapper { |
| | | private final ByteArrayOutputStream cachedBody; |
| | | private final PrintWriter writer; |
| | | |
| | | public CachedBodyHttpServletResponse(HttpServletResponse response) { |
| | | super(response); |
| | | this.cachedBody = new ByteArrayOutputStream(); |
| | | this.writer = new PrintWriter(cachedBody); |
| | | } |
| | | |
| | | @Override |
| | | public PrintWriter getWriter() { |
| | | return writer; |
| | | } |
| | | |
| | | @Override |
| | | public ServletOutputStream getOutputStream() { |
| | | return new ServletOutputStream() { |
| | | @Override |
| | | public void write(int b) { |
| | | cachedBody.write(b); |
| | | } |
| | | |
| | | @Override |
| | | public boolean isReady() { |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void setWriteListener(WriteListener writeListener) { |
| | | |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public byte[] getContent() { |
| | | writer.flush(); |
| | | return cachedBody.toByteArray(); |
| | | } |
| | | } |
| | | package com.zy.asrs.wms.common.security;
|
| | |
|
| | | import javax.servlet.ServletOutputStream;
|
| | | import javax.servlet.WriteListener;
|
| | | import javax.servlet.http.HttpServletResponse;
|
| | | import javax.servlet.http.HttpServletResponseWrapper;
|
| | | import java.io.ByteArrayOutputStream;
|
| | | import java.io.PrintWriter;
|
| | |
|
| | | public class CachedBodyHttpServletResponse extends HttpServletResponseWrapper {
|
| | | private final ByteArrayOutputStream cachedBody;
|
| | | private final PrintWriter writer;
|
| | |
|
| | | public CachedBodyHttpServletResponse(HttpServletResponse response) {
|
| | | super(response);
|
| | | this.cachedBody = new ByteArrayOutputStream();
|
| | | this.writer = new PrintWriter(cachedBody);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public PrintWriter getWriter() {
|
| | | return writer;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public ServletOutputStream getOutputStream() {
|
| | | return new ServletOutputStream() {
|
| | | @Override
|
| | | public void write(int b) {
|
| | | cachedBody.write(b);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean isReady() {
|
| | | return true;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void setWriteListener(WriteListener writeListener) {
|
| | |
|
| | | }
|
| | | };
|
| | | }
|
| | |
|
| | | public byte[] getContent() {
|
| | | writer.flush();
|
| | | return cachedBody.toByteArray();
|
| | | }
|
| | | }
|