List of usage examples for java.util.zip Inflater setInput
public void setInput(ByteBuffer input)
From source file:org.wso2.identity.integration.test.requestPathAuthenticator.RequestPathAuthenticatorTestCase.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq//from w ww . ja v a2s .c om * @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 ""; } }
From source file:edu.umn.msi.tropix.proteomics.conversion.impl.ConversionUtils.java
public static byte[] decompress(byte[] compressedData) { byte[] decompressedData; // using a ByteArrayOutputStream to not having to define the result array size beforehand Inflater decompressor = new Inflater(); decompressor.setInput(compressedData); // Create an expandable byte array to hold the decompressed data ByteArrayOutputStream bos = new ByteArrayOutputStream(compressedData.length); byte[] buf = new byte[1024]; while (!decompressor.finished()) { try {// w w w . j av a2 s . c o m int count = decompressor.inflate(buf); if (count == 0 && decompressor.needsInput()) { break; } bos.write(buf, 0, count); } catch (DataFormatException e) { throw new IllegalStateException( "Encountered wrong data format " + "while trying to decompress binary data!", e); } } try { bos.close(); } catch (IOException e) { // ToDo: add logging e.printStackTrace(); } // Get the decompressed data decompressedData = bos.toByteArray(); if (decompressedData == null) { throw new IllegalStateException("Decompression of binary data produced no result (null)!"); } return decompressedData; }
From source file:org.wso2.carbon.identity.authenticator.saml2.sso.ui.Util.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq/*from w w w. j a v a2 s. c o m*/ * @return decoded AuthReq */ public static String decode(String encodedStr) throws SAML2SSOUIAuthenticatorException { 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(); String decodedStr = new String(baos.toByteArray()); return decodedStr; } } catch (IOException e) { throw new SAML2SSOUIAuthenticatorException("Error when decoding the SAML Request.", e); } }
From source file:de.unidue.inf.is.ezdl.dlcore.utils.StringUtils.java
/** * Decompresses a string.//ww w .ja v a 2 s. c o m * * @param s * The string to decompress * @return The decompressed string */ public static String decompress(String s) { ByteArrayOutputStream baos = null; try { Inflater ifl = new Inflater(); ifl.setInput(Base64.decodeBase64(s)); baos = new ByteArrayOutputStream(); while (!ifl.finished()) { byte[] buff = new byte[1024]; int count = ifl.inflate(buff); baos.write(buff, 0, count); } baos.flush(); byte[] output = baos.toByteArray(); return new String(output, "UTF-8"); } catch (UnsupportedEncodingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } catch (DataFormatException e) { logger.error(e.getMessage(), e); } finally { ClosingUtils.close(baos); } return ""; }
From source file:org.atricore.idbus.capabilities.sso.main.binding.SamlR2HttpRedirectBinding.java
public static String inflateFromRedirect(String redirStr, boolean decode) throws Exception { if (redirStr == null || redirStr.length() == 0) { throw new RuntimeException("Redirect string cannot be null or empty"); }//from ww w .j a v a 2 s.c om byte[] redirBin = null; if (decode) redirBin = new Base64().decode(removeNewLineChars(redirStr).getBytes()); else redirBin = redirStr.getBytes(); // Decompress the bytes Inflater inflater = new Inflater(true); inflater.setInput(redirBin); ByteArrayOutputStream baos = new ByteArrayOutputStream(8192); try { int resultLength = 0; int buffSize = 1024; byte[] buff = new byte[buffSize]; while (!inflater.finished()) { resultLength = inflater.inflate(buff); baos.write(buff, 0, resultLength); } } catch (DataFormatException e) { throw new RuntimeException("Cannot inflate SAML message : " + e.getMessage(), e); } inflater.end(); // Decode the bytes into a String String outputString = null; try { outputString = new String(baos.toByteArray(), "UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException("Cannot convert byte array to string " + e.getMessage(), e); } return outputString; }
From source file:gov.niem.ws.util.SecurityUtil.java
/** * Decode data by Base64 decoding, then decompressing with the DEFLATE * algorithm; reverses encodeHeader.//ww w .j a v a2 s.c om * * @param encoded * @return the decoded, decompressed data * @throws DataFormatException */ public static String decodeHeader(byte[] encoded) throws DataFormatException { // TODO: length limit on encoded? byte[] compressedBytes = Base64.decodeBase64(encoded); ByteArrayOutputStream out = new ByteArrayOutputStream(compressedBytes.length); Inflater inflater = new Inflater(); inflater.setInput(compressedBytes); byte[] buffer = new byte[1024]; while (!inflater.finished()) { int count = inflater.inflate(buffer); if (count == 0) break; out.write(buffer, 0, count); } try { inflater.end(); out.close(); } catch (IOException e) { } return new String(out.toByteArray()); }
From source file:org.jasig.cas.util.CompressionUtils.java
/** * Inflate the given byte array by {@link #INFLATED_ARRAY_LENGTH}. * * @param bytes the bytes/*from w w w.j a va 2 s. c o m*/ * @return the array as a string with <code>UTF-8</code> encoding */ public static String inflate(final byte[] bytes) { final Inflater inflater = new Inflater(true); final byte[] xmlMessageBytes = new byte[INFLATED_ARRAY_LENGTH]; final byte[] extendedBytes = new byte[bytes.length + 1]; System.arraycopy(bytes, 0, extendedBytes, 0, bytes.length); extendedBytes[bytes.length] = 0; inflater.setInput(extendedBytes); try { final int resultLength = inflater.inflate(xmlMessageBytes); inflater.end(); if (!inflater.finished()) { throw new RuntimeException("Buffer not large enough."); } inflater.end(); return new String(xmlMessageBytes, 0, resultLength, UTF8_ENCODING); } catch (final DataFormatException e) { LOGGER.error("Data format is not supported", e); return null; } catch (final UnsupportedEncodingException e) { throw new RuntimeException("Cannot find encoding:" + UTF8_ENCODING, e); } }
From source file:org.wso2.identity.integration.test.requestPathAuthenticator.SAMLWithRequestPathAuthenticationTest.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq// w w w.j a va 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(); return new String(xmlMessageBytes, 0, resultLength, (DEFAULT_CHARSET)); } 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(); return new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8); } } catch (IOException e) { Assert.fail("Error while decoding SAML response", e); return ""; } }
From source file:org.wso2.carbon.identity.auth.saml2.common.SAML2AuthUtils.java
public static String decodeForRedirect(String encodedStr) throws IdentityRuntimeException { try {//from w w w .j a v a 2 s . c om if (logger.isDebugEnabled()) { logger.debug(" >> encoded string in the SSOUtils/decode : " + encodedStr); } 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 { //TODO if the request came in POST, inflating is wrong 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, "UTF-8"); if (logger.isDebugEnabled()) { logger.debug("Request message " + decodedString); } return decodedString; } 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(), Charset.forName("UTF-8")); if (logger.isDebugEnabled()) { logger.debug("Request message " + decodedStr); } return decodedStr; } } catch (IOException e) { throw new IdentityRuntimeException("Error when decoding the SAML Request.", e); } }
From source file:org.wso2.carbon.identity.application.authenticator.samlsso.util.SSOUtils.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq/*from w ww . j a va 2 s. com*/ * @return decoded AuthReq */ public static String decode(String encodedStr) throws SAMLSSOException { try { if (log.isDebugEnabled()) { log.debug(" >> encoded string in the SSOUtils/decode : " + encodedStr); } 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 { //TODO if the request came in POST, inflating is wrong 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(); String decodedString = new String(xmlMessageBytes, 0, resultLength, "UTF-8"); if (log.isDebugEnabled()) { log.debug("Request message " + decodedString); } return decodedString; } 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(), Charset.forName("UTF-8")); if (log.isDebugEnabled()) { log.debug("Request message " + decodedStr); } return decodedStr; } } catch (IOException e) { throw new SAMLSSOException("Error when decoding the SAML Request.", e); } }