Class HttpClientSupport

java.lang.Object
net.shibboleth.utilities.java.support.httpclient.HttpClientSupport

public final class HttpClientSupport
extends Object
Support class for using HttpClient and related components.
  • Field Details

  • Constructor Details

    • HttpClientSupport

      private HttpClientSupport()
      Constructor to prevent instantiation.
  • Method Details

    • buildStrictTLSSocketFactory

      @Nonnull public static org.apache.http.conn.socket.LayeredConnectionSocketFactory buildStrictTLSSocketFactory()
      Build an instance of TLS-capable LayeredConnectionSocketFactory which uses the standard JSSE default SSLContext and which performs strict hostname verification.
      Returns:
      a new instance of HttpClient SSL connection socket factory
    • buildNoTrustTLSSocketFactory

      @Nonnull public static org.apache.http.conn.socket.LayeredConnectionSocketFactory buildNoTrustTLSSocketFactory()
      Build a TLS-capable instance of LayeredConnectionSocketFactory which accepts all peer certificates and performs no hostname verification.
      Returns:
      a new instance of HttpClient SSL connection socket factory
    • buildNoTrustX509TrustManager

      @Nonnull public static X509TrustManager buildNoTrustX509TrustManager()
      Build an instance of X509TrustManager which trusts all certificates.
      Returns:
      a new trust manager instance
    • getDynamicContextHandlerList

      @Nonnull public static List<HttpClientContextHandler> getDynamicContextHandlerList​(@Nonnull org.apache.http.client.protocol.HttpClientContext context)
      Get the list of HttpClientContextHandler for the HttpClientContext.
      Parameters:
      context - the client context
      Returns:
      the handler list
    • addDynamicContextHandlerFirst

      public static void addDynamicContextHandlerFirst​(@Nonnull org.apache.http.client.protocol.HttpClientContext context, @Nonnull HttpClientContextHandler handler)
      Add the specified instance of HttpClientContextHandler to the HttpClientContext in the first handler list position.
      Parameters:
      context - the client context
      handler - the handler to add
    • addDynamicContextHandlerFirst

      public static void addDynamicContextHandlerFirst​(@Nonnull org.apache.http.client.protocol.HttpClientContext context, @Nonnull HttpClientContextHandler handler, boolean uniqueType)
      Add the specified instance of HttpClientContextHandler to the HttpClientContext in the first handler list position.
      Parameters:
      context - the client context
      handler - the handler to add
      uniqueType - whether to only add the handler if an instance of its (exact) class is not already present
    • addDynamicContextHandlerLast

      public static void addDynamicContextHandlerLast​(@Nonnull org.apache.http.client.protocol.HttpClientContext context, @Nonnull HttpClientContextHandler handler)
      Add the specified instance of HttpClientContextHandler to the HttpClientContext in the last handler list position.
      Parameters:
      context - the client context
      handler - the handler to add
    • addDynamicContextHandlerLast

      public static void addDynamicContextHandlerLast​(@Nonnull org.apache.http.client.protocol.HttpClientContext context, @Nonnull HttpClientContextHandler handler, boolean uniqueType)
      Add the specified instance of HttpClientContextHandler to the HttpClientContext in the last handler list position.
      Parameters:
      context - the client context
      handler - the handler to add
      uniqueType - whether to only add the handler if an instance of its (exact) class is not already present
    • toString

      @Nullable public static String toString​(@Nonnull org.apache.http.HttpEntity entity, @Nullable Charset defaultCharset, int maxLength) throws IOException, org.apache.http.ParseException
      Get the entity content as a String, using the provided default character set if none is found in the entity.

      If defaultCharset is null, the default "ISO-8859-1" is used.

      Parameters:
      entity - must not be null
      defaultCharset - character set to be applied if none found in the entity
      maxLength - limit on size of content
      Returns:
      the entity content as a String. May be null if HttpEntity.getContent() is null.
      Throws:
      org.apache.http.ParseException - if header elements cannot be parsed
      IOException - if an error occurs reading the input stream, or the size exceeds limits
      UnsupportedCharsetException - when the content's charset is not available
    • toString

      @Nullable public static String toString​(@Nonnull org.apache.http.HttpEntity entity, @Nullable String defaultCharset, int maxLength) throws IOException, org.apache.http.ParseException
      Get the entity content as a String, using the provided default character set if none is found in the entity. If defaultCharset is null, the default "ISO-8859-1" is used.
      Parameters:
      entity - must not be null
      defaultCharset - character set to be applied if none found in the entity
      maxLength - limit on size of content
      Returns:
      the entity content as a String. May be null if HttpEntity.getContent() is null.
      Throws:
      org.apache.http.ParseException - if header elements cannot be parsed
      IOException - if an error occurs reading the input stream, or the size exceeds limits
      UnsupportedCharsetException - when the content's charset is not available
    • toString

      @Nullable public static String toString​(@Nonnull org.apache.http.HttpEntity entity, int maxLength) throws IOException, org.apache.http.ParseException
      Read the contents of an entity and return it as a String. The content is converted using the character set from the entity (if any), failing that, "ISO-8859-1" is used.
      Parameters:
      entity - the entity to convert to a string; must not be null
      maxLength - limit on size of content
      Returns:
      the entity content as a String. May be null if HttpEntity.getContent() is null.
      Throws:
      org.apache.http.ParseException - if header elements cannot be parsed
      IOException - if an error occurs reading the input stream, or the size exceeds limits
      UnsupportedCharsetException - when the content's charset is not available