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.
    • 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 String utf8Encode​(byte[] value,
                                        boolean allowNull)
        This will convert the supplied value to a UTF-8 encoded string.
        Parameters:
        value - to UTF-8 encode
        allowNull - whether to throw NullPointerException if value is null
        Returns:
        UTF-8 encoded value
        Throws:
        NullPointerException - if allowNull is false and value is null
      • 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
      • utf8Encode

        public static byte[] utf8Encode​(String value,
                                        boolean allowNull)
        This will convert the supplied value to a UTF-8 encoded byte array.
        Parameters:
        value - to UTF-8 encode
        allowNull - whether to throw NullPointerException if value is null
        Returns:
        UTF-8 encoded value
        Throws:
        NullPointerException - if allowNull is false and value is null
      • utf8Encode

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

        public static byte[] utf8Encode​(char[] value,
                                        boolean allowNull)
        This will convert the supplied value to a UTF-8 encoded byte array.
        Parameters:
        value - to UTF-8 encode
        allowNull - whether to throw NullPointerException if value is null
        Returns:
        UTF-8 encoded value
        Throws:
        NullPointerException - if allowNull is false and value is null
      • 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
      • trimSpace

        public static String trimSpace​(String value)
        Removes the space character from both the beginning and end of the supplied value.
        Parameters:
        value - to trim space character from
        Returns:
        trimmed value or same value if no trim was performed
      • compressSpace

        public static String compressSpace​(String value,
                                           boolean trim)
        Changes the supplied value by replacing multiple spaces with a single space.
        Parameters:
        value - to compress spaces
        trim - whether to remove any leading or trailing space characters
        Returns:
        normalized value or value if no compress was performed
      • 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 or same value if the string does not contain '%'
      • shouldBase64Encode

        public static boolean shouldBase64Encode​(String value)
        Parameters:
        value - to inspect
        Returns:
        whether the value should be base64 encoded
      • shouldBase64Encode

        public static boolean shouldBase64Encode​(byte[] value)
        Determines whether the supplied value should be base64 encoded. See http://www.faqs.org/rfcs/rfc2849.html for more details.
        Parameters:
        value - to inspect
        Returns:
        whether the value should be base64 encoded
      • toLowerCase

        public static String toLowerCase​(String value)
        Converts the supplied value to lower case. If the string contains non-ascii characters, Locale.ROOT is used.
        Parameters:
        value - to lower case
        Returns:
        new lower case string
      • toLowerCase

        public static String toLowerCase​(String value,
                                         boolean allowNull)
        Converts the supplied value to lower case. If the string contains non-ascii characters, Locale.ROOT is used.
        Parameters:
        value - to lower case
        allowNull - whether to throw NullPointerException if value is null
        Returns:
        new lower case string
        Throws:
        NullPointerException - if allowNull is false and value is null
      • toLowerCaseNonAscii

        private static String toLowerCaseNonAscii​(String s)
        Converts the supplied string to lower case. Uses Character.isUpperCase(int) for non ascii characters.
        Parameters:
        s - to lower case
        Returns:
        new lower case string
      • toLowerCaseAscii

        public static String toLowerCaseAscii​(String s)
        Converts the characters A-Z to a-z.
        Parameters:
        s - to lower case
        Returns:
        new string with lower case alphabetical characters
        Throws:
        IllegalArgumentException - if the supplied string contains non-ascii characters
      • toUpperCase

        public static String toUpperCase​(String s)
        Converts the supplied string to upper case. If the string contains non-ascii characters, Locale.ROOT is used.
        Parameters:
        s - to upper case
        Returns:
        new upper case string
      • toUpperCaseNonAscii

        private static String toUpperCaseNonAscii​(String s)
        Converts the supplied string to upper case. Uses Character.isLowerCase(int) for non ascii characters.
        Parameters:
        s - to upper case
        Returns:
        new upper case string
      • toUpperCaseAscii

        public static String toUpperCaseAscii​(String s)
        Converts the characters a-z to A-Z.
        Parameters:
        s - to upper case
        Returns:
        new string with upper case alphabetical characters
        Throws:
        IllegalArgumentException - if the supplied string contains non-ascii characters
      • 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
      • copyArray

        public static <T> T[] copyArray​(T[] array)
        Creates a copy of the supplied array.
        Type Parameters:
        T - type of array
        Parameters:
        array - array to copy. May be null.
        Returns:
        array copy or null if input was null
      • copyArray

        public static byte[] copyArray​(byte[] array)
        Creates a copy of the supplied array.
        Parameters:
        array - array to copy. May be null.
        Returns:
        array copy or null if input was null
      • 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
      • createConstructorFromProperty

        public static <T> Constructor<T> createConstructorFromProperty​(String property)
        Looks for the supplied system property value and loads a class with that name. The default constructor for that class is then returned.
        Type Parameters:
        T - class type
        Parameters:
        property - whose value is a class
        Returns:
        class constructor or null if no system property was found
        Throws:
        IllegalArgumentException - if an error occurs instantiating the constructor