public final class LdapUtils extends Object
Modifier and Type | Method and Description |
---|---|
static void |
closeContext(DirContext context)
Close the given JNDI Context and ignore any thrown exception.
|
static void |
collectAttributeValues(Attributes attributes,
String name,
Collection collection)
Collect all the values of a the specified attribute from the supplied
Attributes.
|
static String |
convertBinarySidToString(byte[] sid)
Converts a binary SID to its String representation, according to the
algorithm described here.
|
static String |
convertCompositeNameToString(CompositeName compositeName)
Converts a CompositeName to a String in a way that avoids escaping
problems, such as the dreaded "triple backslash" problem.
|
static NamingException |
convertLdapException(NamingException ex)
Convert the specified checked
NamingException to a Spring LDAP runtime
NamingException
equivalent. |
static byte[] |
convertStringSidToBinary(String string)
Converts a String SID to its binary representation, according to the
algorithm described here.
|
static Class |
getActualTargetClass(DirContext context)
Get the actual class of the supplied DirContext instance; LdapContext or
DirContext.
|
static void |
iterateAttributeValues(Attribute attribute,
AttributeValueCallbackHandler callbackHandler)
Iterate through all the values of the specified Attribute calling back to
the specified callbackHandler.
|
public static void closeContext(DirContext context)
finally
blocks in JNDI code.context
- the JNDI Context to close (may be null
)public static NamingException convertLdapException(NamingException ex)
NamingException
to a Spring LDAP runtime
NamingException
equivalent.ex
- the original checked NamingException to convertpublic static Class getActualTargetClass(DirContext context)
context
- the DirContext instance to check.public static void collectAttributeValues(Attributes attributes, String name, Collection collection)
attributes
- The Attributes; not null
.name
- The name of the Attribute to get values for.collection
- the collection to collect the values in.NoSuchAttributeException
- if no attribute with the specified name
exists.public static void iterateAttributeValues(Attribute attribute, AttributeValueCallbackHandler callbackHandler)
attribute
- the Attribute to work with; not null
.callbackHandler
- the callbackHandler; not null
.public static String convertCompositeNameToString(CompositeName compositeName)
compositeName
- The CompositeName to convertname
public static String convertBinarySidToString(byte[] sid)
If you have a SID like S-a-b-c-d-e-f-g-... Then the bytes are a (revision) N (number of dashes minus two) bbbbbb (six bytes of "b" treated as a 48-bit number in big-endian format) cccc (four bytes of "c" treated as a 32-bit number in little-endian format) dddd (four bytes of "d" treated as a 32-bit number in little-endian format) eeee (four bytes of "e" treated as a 32-bit number in little-endian format) ffff (four bytes of "f" treated as a 32-bit number in little-endian format) etc. So for example, if your SID is S-1-5-21-2127521184-1604012920-1887927527-72713, then your raw hex SID is 010500000000000515000000A065CF7E784B9B5FE77C8770091C0100 This breaks down as follows: 01 S-1 05 (seven dashes, seven minus two = 5) 000000000005 (5 = 0x000000000005, big-endian) 15000000 (21 = 0x00000015, little-endian) A065CF7E (2127521184 = 0x7ECF65A0, little-endian) 784B9B5F (1604012920 = 0x5F9B4B78, little-endian) E77C8770 (1887927527 = 0X70877CE7, little-endian) 091C0100 (72713 = 0x00011c09, little-endian) S-1- version number (SID_REVISION) -5- SECURITY_NT_AUTHORITY -21- SECURITY_NT_NON_UNIQUE -...-...-...- these identify the machine that issued the SID 72713 unique user id on the machine
sid
- binary SID in byte array formatpublic static byte[] convertStringSidToBinary(String string)
string
- SID in readable formatconvertBinarySidToString(byte[])
Copyright © 2005-2012 The Spring LDAP Framework. All Rights Reserved.