List of usage examples for java.util.zip InflaterInputStream read
public int read(byte b[]) throws IOException
b.length
bytes of data from this input stream into an array of bytes. From source file:Main.java
public static byte[] inflate(InputStream in, int bufferSize) throws IOException { ByteArrayOutputStream outStream = new ByteArrayOutputStream(bufferSize); InflaterInputStream inStream = new InflaterInputStream(in); byte[] buf = new byte[4096]; while (true) { int size = inStream.read(buf); if (size <= 0) break; outStream.write(buf, 0, size);/*from w w w . j a v a 2 s .co m*/ } outStream.close(); return outStream.toByteArray(); }
From source file:org.wso2.identity.integration.test.requestPathAuthenticator.RequestPathAuthenticatorInvalidUserTestCase.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq/*from w w w. ja va 2 s.com*/ * @return decoded AuthReq */ private static String decode(String encodedStr) { try { Base64 base64Decoder = new Base64(); byte[] xmlBytes = encodedStr.getBytes(DEFAULT_CHARSET); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (!inflater.finished()) { throw new RuntimeException("End of the compressed data stream has NOT been reached"); } inflater.end(); String decodedString = new String(xmlMessageBytes, 0, resultLength, (DEFAULT_CHARSET)); return decodedString; } catch (DataFormatException e) { ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(byteArrayInputStream); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { byteArrayOutputStream.write(buf, 0, count); count = iis.read(buf); } iis.close(); String decodedStr = new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8); return decodedStr; } } catch (IOException e) { Assert.fail("Error while decoding SAML response", e); return ""; } }
From source file:com.faceye.feature.util.http.DeflateUtils.java
/** * Returns an inflated copy of the input array. * @throws IOException if the input cannot be properly decompressed *//*from w ww . ja v a2 s . c o m*/ public static final byte[] inflate(byte[] in) throws IOException { // decompress using InflaterInputStream ByteArrayOutputStream outStream = new ByteArrayOutputStream(EXPECTED_COMPRESSION_RATIO * in.length); InflaterInputStream inStream = new InflaterInputStream(new ByteArrayInputStream(in)); byte[] buf = new byte[BUF_SIZE]; while (true) { int size = inStream.read(buf); if (size <= 0) break; outStream.write(buf, 0, size); } outStream.close(); return outStream.toByteArray(); }
From source file:org.wso2.carbon.identity.sso.saml.tomcat.agent.Util.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr/*from w w w. j a v a2 s. c om*/ * encoded AuthReq * @return decoded AuthReq */ public static String decode(String encodedStr) throws SSOAgentException { try { org.apache.commons.codec.binary.Base64 base64Decoder = new org.apache.commons.codec.binary.Base64(); byte[] xmlBytes = encodedStr.getBytes("UTF-8"); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (inflater.getRemaining() > 0) { throw new RuntimeException("didn't allocate enough space to hold " + "decompressed data"); } inflater.end(); return new String(xmlMessageBytes, 0, resultLength, "UTF-8"); } catch (DataFormatException e) { ByteArrayInputStream bais = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(bais); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { baos.write(buf, 0, count); count = iis.read(buf); } iis.close(); return new String(baos.toByteArray()); } } catch (IOException e) { throw new SSOAgentException("Error when decoding the SAML Request.", e); } }
From source file:com.faceye.feature.util.http.DeflateUtils.java
/** * Returns an inflated copy of the input array, truncated to * <code>sizeLimit</code> bytes, if necessary. If the deflated input * has been truncated or corrupted, a best-effort attempt is made to * inflate as much as possible. If no data can be extracted * <code>null</code> is returned. *//*w ww . ja v a 2 s .co m*/ public static final byte[] inflateBestEffort(byte[] in, int sizeLimit) { // decompress using InflaterInputStream ByteArrayOutputStream outStream = new ByteArrayOutputStream(EXPECTED_COMPRESSION_RATIO * in.length); // "true" because HTTP does not provide zlib headers Inflater inflater = new Inflater(true); InflaterInputStream inStream = new InflaterInputStream(new ByteArrayInputStream(in), inflater); byte[] buf = new byte[BUF_SIZE]; int written = 0; while (true) { try { int size = inStream.read(buf); if (size <= 0) break; if ((written + size) > sizeLimit) { outStream.write(buf, 0, sizeLimit - written); break; } outStream.write(buf, 0, size); written += size; } catch (Exception e) { LOG.info("Caught Exception in inflateBestEffort", e); break; } } try { outStream.close(); } catch (IOException e) { } return outStream.toByteArray(); }
From source file:com.iflytek.spider.util.DeflateUtils.java
/** * Returns an inflated copy of the input array, truncated to * <code>sizeLimit</code> bytes, if necessary. If the deflated input * has been truncated or corrupted, a best-effort attempt is made to * inflate as much as possible. If no data can be extracted * <code>null</code> is returned. *///from w w w . j av a 2 s . c o m public static final byte[] inflateBestEffort(byte[] in, int sizeLimit) { // decompress using InflaterInputStream ByteArrayOutputStream outStream = new ByteArrayOutputStream(EXPECTED_COMPRESSION_RATIO * in.length); // "true" because HTTP does not provide zlib headers Inflater inflater = new Inflater(true); InflaterInputStream inStream = new InflaterInputStream(new ByteArrayInputStream(in), inflater); byte[] buf = new byte[BUF_SIZE]; int written = 0; while (true) { try { int size = inStream.read(buf); if (size <= 0) break; if ((written + size) > sizeLimit) { outStream.write(buf, 0, sizeLimit - written); break; } outStream.write(buf, 0, size); written += size; } catch (Exception e) { LOG.info("Caught Exception in inflateBestEffort"); e.printStackTrace(LogUtil.getWarnStream(LOG)); break; } } try { outStream.close(); } catch (IOException e) { } return outStream.toByteArray(); }
From source file:org.jasig.cas.authentication.principal.GoogleAccountsService.java
private static String zlibDeflate(final byte[] bytes) { final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final InflaterInputStream iis = new InflaterInputStream(bais); final byte[] buf = new byte[1024]; try {//from w w w . ja v a 2s.c o m int count = iis.read(buf); while (count != -1) { baos.write(buf, 0, count); count = iis.read(buf); } return new String(baos.toByteArray()); } catch (final Exception e) { return null; } finally { try { iis.close(); } catch (final Exception e) { // nothing to do } } }
From source file:org.jasig.cas.support.saml.authentication.principal.GoogleAccountsService.java
private static String zlibDeflate(final byte[] bytes) { final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final InflaterInputStream iis = new InflaterInputStream(bais); final byte[] buf = new byte[1024]; try {/*from w w w. ja va2 s. com*/ int count = iis.read(buf); while (count != -1) { baos.write(buf, 0, count); count = iis.read(buf); } return new String(baos.toByteArray()); } catch (final Exception e) { return null; } finally { IOUtils.closeQuietly(iis); } }
From source file:org.socraticgrid.workbench.security.wso2.Saml2Util.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq//from w w w .j a va 2 s .c om * @return decoded AuthReq */ public static String decode(String encodedStr) throws Exception { try { org.apache.commons.codec.binary.Base64 base64Decoder = new org.apache.commons.codec.binary.Base64(); byte[] xmlBytes = encodedStr.getBytes("UTF-8"); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (!inflater.finished()) { throw new RuntimeException("didn't allocate enough space to hold " + "decompressed data"); } inflater.end(); return new String(xmlMessageBytes, 0, resultLength, "UTF-8"); } catch (DataFormatException e) { ByteArrayInputStream bais = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(bais); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { baos.write(buf, 0, count); count = iis.read(buf); } iis.close(); String decodedStr = new String(baos.toByteArray()); return decodedStr; } } catch (IOException e) { throw new Exception("Error when decoding the SAML Request.", e); } }
From source file:org.wso2.identity.integration.test.requestPathAuthenticator.RequestPathAuthenticatorTestCase.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq//from ww w . j av a 2 s . co m * @return decoded AuthReq */ private static String decode(String encodedStr) { try { Base64 base64Decoder = new Base64(); byte[] xmlBytes = encodedStr.getBytes(DEFAULT_CHARSET); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (!inflater.finished()) { throw new RuntimeException("End of the compressed data stream has NOT been reached"); } inflater.end(); String decodedString = new String(xmlMessageBytes, 0, resultLength, (DEFAULT_CHARSET)); return decodedString; } catch (DataFormatException e) { ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(byteArrayInputStream); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { byteArrayOutputStream.write(buf, 0, count); count = iis.read(buf); } iis.close(); String decodedStr = new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8); return decodedStr; } } catch (IOException e) { Assert.fail("Error while decoding SAML response"); return ""; } }