public class JndiConnection extends Object implements ProviderConnection
Modifier and Type | Class and Description |
---|---|
protected static class |
JndiConnection.JndiExtendedRequest
Class for exposing extended request properties.
|
protected static class |
JndiConnection.JndiExtendedResponse
Class for exposing extended response properties.
|
protected class |
JndiConnection.JndiSearchIterator
Search iterator for JNDI naming enumeration.
|
Modifier and Type | Field and Description |
---|---|
static String |
AUTHENTICATION
The value of this property is a string that specifies the authentication mechanism(s) for the provider to use.
|
static String |
BINARY_ATTRIBUTES
The value of this property is a string that specifies additional binary attributes.
|
private JndiProviderConfig |
config
Provider configuration.
|
private LdapContext |
context
Ldap context.
|
static String |
CREDENTIALS
The value of this property is an object that specifies the credentials of the principal to be authenticated.
|
static String |
DELETE_RDN
The value of this property is a string that specifies whether the RDN attribute should be deleted for a modify dn
operation.
|
static String |
DEREF_ALIASES
The value of this property is a string that specifies how aliases shall be handled by the provider.
|
protected Logger |
logger
Logger for this class.
|
static String |
PRINCIPAL
The value of this property is a string that specifies the identity of the principal to be authenticated.
|
static String |
REFERRAL
The value of this property is a string that specifies how referrals shall be handled by the provider.
|
static String |
SASL_AUTHZ_ID
The value of this property is a string that specifies the sasl authorization id.
|
static String |
SASL_MUTUAL_AUTH
The value of this property is a string that specifies the sasl mutual authentication flag.
|
static String |
SASL_QOP
The value of this property is a string that specifies the sasl quality of protection.
|
static String |
SASL_REALM
The value of this property is a string that specifies the sasl realm.
|
static String |
SASL_STRENGTH
The value of this property is a string that specifies the sasl security strength.
|
static String |
TYPES_ONLY
The value of this property is a string that specifies to only return attribute type names, no values.
|
Constructor and Description |
---|
JndiConnection(LdapContext lc,
JndiProviderConfig pc)
Creates a new jndi connection.
|
Modifier and Type | Method and Description |
---|---|
void |
abandon(int messageId,
RequestControl[] controls)
Abandon an operation.
|
Response<Void> |
add(AddRequest request)
Add an entry to an ldap.
|
void |
addUnsolicitedNotificationListener(UnsolicitedNotificationListener listener)
Adds a listener to receive unsolicited notifications.
|
protected Response<Void> |
anonymousBind(BindRequest request)
Performs an anonymous bind.
|
Response<Void> |
bind(BindRequest request)
Bind to the ldap.
|
void |
close(RequestControl[] controls)
Tear down this connection to an LDAP.
|
Response<Boolean> |
compare(CompareRequest request)
Compare an entry in the ldap.
|
protected <T> Response<T> |
createResponse(Request request,
T result,
ResultCode code,
String[] urls,
LdapContext ctx)
Creates an operation response with the supplied response data.
|
Response<Void> |
delete(DeleteRequest request)
Delete an entry in the ldap.
|
Response<?> |
extendedOperation(ExtendedRequest request)
Perform an extended operation in the ldap.
|
static SearchControls |
getCompareSearchControls()
Returns a search controls object configured to perform an LDAP compare operation.
|
LdapContext |
getLdapContext()
Returns the underlying ldap context.
|
protected static Map<String,Object> |
getSaslProperties(SaslConfig config)
Returns the JNDI properties for the supplied sasl configuration.
|
protected LdapContext |
initializeContext(Request request)
Creates a new ldap context using
LdapContext.newInstance(Control[]) . |
Response<Void> |
modify(ModifyRequest request)
Modify an entry in the ldap.
|
Response<Void> |
modifyDn(ModifyDnRequest request)
Modify the DN of an entry in the ldap.
|
protected void |
processNamingException(Request request,
NamingException e,
String[] urls,
LdapContext ctx)
Determines if the supplied naming exception should result in an operation retry.
|
protected ResponseControl[] |
processResponseControls(ControlProcessor<Control> processor,
RequestControl[] requestControls,
LdapContext ctx)
Retrieves the response controls from the supplied context and processes them with the supplied control processor.
|
void |
removeUnsolicitedNotificationListener(UnsolicitedNotificationListener listener)
Removes a listener from receiving unsolicited notifications.
|
protected Response<Void> |
saslBind(BindRequest request)
Performs a sasl bind.
|
SearchIterator |
search(SearchRequest request)
Search the ldap.
|
void |
searchAsync(SearchRequest request,
SearchListener listener)
Search the ldap asynchronously.
|
protected Response<Void> |
simpleBind(BindRequest request)
Performs a simple bind.
|
public static final String AUTHENTICATION
public static final String CREDENTIALS
public static final String PRINCIPAL
public static final String SASL_AUTHZ_ID
public static final String SASL_QOP
public static final String SASL_STRENGTH
public static final String SASL_MUTUAL_AUTH
public static final String SASL_REALM
public static final String DELETE_RDN
public static final String BINARY_ATTRIBUTES
public static final String DEREF_ALIASES
public static final String REFERRAL
public static final String TYPES_ONLY
protected final Logger logger
private LdapContext context
private final JndiProviderConfig config
public JndiConnection(LdapContext lc, JndiProviderConfig pc)
lc
- ldap contextpc
- provider configurationpublic LdapContext getLdapContext()
public void close(RequestControl[] controls) throws LdapException
ProviderConnection
close
in interface ProviderConnection
controls
- request controlsLdapException
- if an LDAP error occurspublic Response<Void> bind(BindRequest request) throws LdapException
ProviderConnection
bind
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occursprotected Response<Void> anonymousBind(BindRequest request) throws LdapException
request
- to bind withLdapException
- if an error occursprotected Response<Void> simpleBind(BindRequest request) throws LdapException
request
- to bind withLdapException
- if an error occursprotected Response<Void> saslBind(BindRequest request) throws LdapException
request
- to bind withLdapException
- if an error occurspublic Response<Void> add(AddRequest request) throws LdapException
ProviderConnection
add
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic Response<Boolean> compare(CompareRequest request) throws LdapException
ProviderConnection
compare
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic Response<Void> delete(DeleteRequest request) throws LdapException
ProviderConnection
delete
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic Response<Void> modify(ModifyRequest request) throws LdapException
ProviderConnection
modify
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic Response<Void> modifyDn(ModifyDnRequest request) throws LdapException
ProviderConnection
modifyDn
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic SearchIterator search(SearchRequest request) throws LdapException
ProviderConnection
search
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic void searchAsync(SearchRequest request, SearchListener listener) throws LdapException
ProviderConnection
searchAsync
in interface ProviderConnection
request
- containing the data necessary to perform the operationlistener
- to be notified as results arriveLdapException
- if an error occurspublic void abandon(int messageId, RequestControl[] controls) throws LdapException
ProviderConnection
abandon
in interface ProviderConnection
messageId
- of the operation to abandoncontrols
- request controlsLdapException
- if an error occurspublic Response<?> extendedOperation(ExtendedRequest request) throws LdapException
ProviderConnection
extendedOperation
in interface ProviderConnection
request
- containing the data necessary to perform the operationLdapException
- if an error occurspublic void addUnsolicitedNotificationListener(UnsolicitedNotificationListener listener)
ProviderConnection
addUnsolicitedNotificationListener
in interface ProviderConnection
listener
- to receive unsolicited notificationspublic void removeUnsolicitedNotificationListener(UnsolicitedNotificationListener listener)
ProviderConnection
removeUnsolicitedNotificationListener
in interface ProviderConnection
listener
- that was registered to receive unsolicited notificationspublic static SearchControls getCompareSearchControls()
protected LdapContext initializeContext(Request request) throws NamingException
LdapContext.newInstance(Control[])
. Adds any additional environment
properties found in the supplied request to the context.request
- to read properties fromNamingException
- if a property cannot be added to the contextprotected <T> Response<T> createResponse(Request request, T result, ResultCode code, String[] urls, LdapContext ctx)
T
- type of responserequest
- containing controlsresult
- of the operationcode
- operation result codeurls
- referral urlsctx
- ldap contextprotected void processNamingException(Request request, NamingException e, String[] urls, LdapContext ctx) throws LdapException
request
- that produced the exceptione
- that was producedurls
- referral urlsctx
- that the exception occurred onLdapException
- wrapping the naming exceptionprotected ResponseControl[] processResponseControls(ControlProcessor<Control> processor, RequestControl[] requestControls, LdapContext ctx)
processor
- control processorrequestControls
- that produced this responsectx
- to get controls fromprotected static Map<String,Object> getSaslProperties(SaslConfig config)
config
- sasl configurationCopyright © 2003-2019 Virginia Tech. All Rights Reserved.