package org.deegree.securityproxy.filter;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.io.Writer;
/**
* see http://stackoverflow.com/questions/3242236/capture-and-log-the-response-body
*
*
* @version $Revision: $, $Date: $
*/
public class CopyPrintWriter extends PrintWriter {
private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
public CopyPrintWriter( Writer writer ) {
super( writer );
}
@Override
public void write( int c ) {
baos.write( c );
super.write( c );
}
@Override
public void write( char[] chars, int offset, int length ) {
byte[] bytes = new String( chars ).getBytes();
baos.write( bytes, offset, length );
super.write( chars, offset, length );
}
@Override
public void write( String string, int offset, int length ) {
baos.write( string.getBytes(), offset, length );
super.write( string, offset, length );
}
public byte[] getCopy() {
return baos.toByteArray();
}
}