Package org.ldaptive

Class LdapUtils


  • public final class LdapUtils
    extends Object
    Provides utility methods for this package.
    • Field Detail

      • READ_BUFFER_SIZE

        private static final int READ_BUFFER_SIZE
        Size of buffer in bytes to use when reading files.
        See Also:
        Constant Field Values
      • HASH_CODE_PRIME

        private static final int HASH_CODE_PRIME
        Prime number to assist in calculating hash codes.
        See Also:
        Constant Field Values
      • IPV4_PATTERN

        private static final Pattern IPV4_PATTERN
        Pattern to match ipv4 addresses.
      • IPV6_STD_PATTERN

        private static final Pattern IPV6_STD_PATTERN
        Pattern to match ipv6 addresses.
      • IPV6_HEX_COMPRESSED_PATTERN

        private static final Pattern IPV6_HEX_COMPRESSED_PATTERN
        Pattern to match ipv6 hex compressed addresses.
      • CNTRL_PATTERN

        private static final Pattern CNTRL_PATTERN
        Pattern that matches control characters.
      • CLASSPATH_PREFIX

        private static final String CLASSPATH_PREFIX
        Prefix used to indicate a classpath resource.
        See Also:
        Constant Field Values
    • Constructor Detail

      • LdapUtils

        private LdapUtils()
        Default constructor.
    • Method Detail

      • base64Encode

        public static String base64Encode​(byte[] value)
        This will convert the supplied value to a base64 encoded string. Returns null if the supplied byte array is null.
        Parameters:
        value - to base64 encode
        Returns:
        base64 encoded value
      • base64Encode

        public static String base64Encode​(String value)
        This will convert the supplied value to a base64 encoded string. Returns null if the supplied string is null.
        Parameters:
        value - to base64 encode
        Returns:
        base64 encoded value
      • utf8Encode

        public static String utf8Encode​(byte[] value)
        This will convert the supplied value to a UTF-8 encoded string. Returns null if the supplied byte array is null.
        Parameters:
        value - to UTF-8 encode
        Returns:
        UTF-8 encoded value
      • utf8Encode

        public static byte[] utf8Encode​(String value)
        This will convert the supplied value to a UTF-8 encoded byte array. Returns null if the supplied string is null.
        Parameters:
        value - to UTF-8 encode
        Returns:
        UTF-8 encoded value
      • hexEncode

        public static char[] hexEncode​(byte[] value)
        This will convert the supplied value to a hex encoded string. Returns null if the supplied byte array is null.
        Parameters:
        value - to hex encode
        Returns:
        hex encoded value
      • hexEncode

        public static char[] hexEncode​(char... value)
        This will convert the supplied value to a hex encoded string. Returns null if the supplied char array is null.
        Parameters:
        value - to hex encode
        Returns:
        hex encoded value
      • percentEncode

        public static String percentEncode​(String value)
        Implementation of percent encoding as described in RFC 3986 section 2.1.
        Parameters:
        value - to encode
        Returns:
        percent encoded value
      • percentEncodeControlChars

        public static String percentEncodeControlChars​(String value)
        Converts all characters <= 0x1F and 0x7F to percent encoded hex.
        Parameters:
        value - to encode control characters in
        Returns:
        string with percent encoded hex characters
      • base64Decode

        public static byte[] base64Decode​(String value)
        This will decode the supplied value as a base64 encoded string to a byte[]. Returns null if the supplied string is null.
        Parameters:
        value - to base64 decode
        Returns:
        base64 decoded value
      • hexDecode

        public static byte[] hexDecode​(char[] value)
        This will decode the supplied value as a hex encoded string to a byte[]. Returns null if the supplied character array is null.
        Parameters:
        value - to hex decode
        Returns:
        hex decoded value
      • percentDecode

        public static String percentDecode​(String value)
        Implementation of percent decoding as described in RFC 3986 section 2.1.
        Parameters:
        value - to decode
        Returns:
        percent decoded value
      • readURL

        public static byte[] readURL​(URL url)
                              throws IOException
        Reads the data at the supplied URL and returns it as a byte array.
        Parameters:
        url - to read
        Returns:
        bytes read from the URL
        Throws:
        IOException - if an error occurs reading data
      • readInputStream

        public static byte[] readInputStream​(InputStream is)
                                      throws IOException
        Reads the data in the supplied stream and returns it as a byte array.
        Parameters:
        is - stream to read
        Returns:
        bytes read from the stream
        Throws:
        IOException - if an error occurs reading data
      • concatArrays

        public static <T> T[] concatArrays​(T[] first,
                                           T[]... rest)
        Concatenates multiple arrays together.
        Type Parameters:
        T - type of array
        Parameters:
        first - array to concatenate. Cannot be null.
        rest - of the arrays to concatenate. May be null.
        Returns:
        array containing the concatenation of all parameters
      • areEqual

        public static boolean areEqual​(Object o1,
                                       Object o2)
        Determines equality of the supplied objects. Array types are automatically detected.
        Parameters:
        o1 - to test equality of
        o2 - to test equality of
        Returns:
        whether o1 equals o2
      • computeHashCode

        public static int computeHashCode​(int seed,
                                          Object... objects)
        Computes a hash code for the supplied objects using the supplied seed. If a Collection type is found it is iterated over.
        Parameters:
        seed - odd/prime number
        objects - to calculate hashCode for
        Returns:
        hash code for the supplied objects
      • computeHashCode

        private static int computeHashCode​(Object object)
        Computes a hash code for the supplied object. Checks for arrays of primitives and Objects then delegates to the Arrays class. Otherwise Object.hashCode() is invoked.
        Parameters:
        object - to calculate hash code for
        Returns:
        hash code
      • isIPAddress

        public static boolean isIPAddress​(String s)
        Returns whether the supplied string represents an IP address. Matches both IPv4 and IPv6 addresses.
        Parameters:
        s - to match
        Returns:
        whether the supplied string represents an IP address
      • isResource

        public static boolean isResource​(String s)
        Returns whether the supplied string starts with CLASSPATH_PREFIX or FILE_PREFIX.
        Parameters:
        s - to inspect
        Returns:
        whether the supplied string represents a resource
      • getResource

        public static InputStream getResource​(String path)
                                       throws IOException
        Parses the supplied path and returns an input stream based on the prefix in the path. If a path is prefixed with the string "classpath:" it is interpreted as a classpath specification. If a path is prefixed with the string "file:" it is interpreted as a file path.
        Parameters:
        path - that designates a resource
        Returns:
        input stream to read the resource
        Throws:
        IOException - if the resource cannot be read
        IllegalArgumentException - if path is not prefixed with either 'classpath:' or 'file:'