package de.otto.hmac.authentication;
import javax.servlet.ServletInputStream;
import java.io.IOException;
import java.io.InputStream;
class WrappedServletInputStream extends ServletInputStream {
private final InputStream inputStream;
public WrappedServletInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
@Override
public int read() throws IOException {
return inputStream.read();
}
@Override
public int read(byte[] b, int off, int len) throws IOException {
// using default InputStream.read method would blow
// runtime as it falls back to single byte reading
// in ServletInputStream. Be smarter, offer larger read chunk
return inputStream.read(b, off, len);
}
@Override
public int available() throws IOException {
return inputStream.available();
}
@Override
public synchronized void mark(int readlimit) {
inputStream.mark(readlimit);
}
@Override
public synchronized void reset() throws IOException {
inputStream.reset();
}
@Override
public void close() throws IOException {
inputStream.close();
}
public boolean markSupported() {
return inputStream.markSupported();
}
}