|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Thread
com.unboundid.ldap.listener.LDAPListener
@ThreadSafety(level=NOT_THREADSAFE) public final class LDAPListener
This class provides a framework that may be used to accept connections from
LDAP clients and ensure that any requests received on those connections will
be processed appropriately. It can be used to easily allow applications to
accept LDAP requests, to create a simple proxy that can intercept and
examine LDAP requests and responses passing between a client and server, or
helping to test LDAP clients.
// Create a canned response request handler that will always return a // "SUCCESS" result in response to any request. CannedResponseRequestHandler requestHandler = new CannedResponseRequestHandler(ResultCode.SUCCESS, null, null, null); // A listen port of zero indicates that the listener should // automatically pick a free port on the system. int listenPort = 0; // Create and start an LDAP listener to accept requests and blindly // return success results. LDAPListenerConfig listenerConfig = new LDAPListenerConfig(listenPort, requestHandler); LDAPListener listener = new LDAPListener(listenerConfig); listener.startListening(); // Establish a connection to the listener and verify that a search // request will get a success result. LDAPConnection connection = new LDAPConnection("localhost", listener.getListenPort()); SearchResult searchResult = connection.search("dc=example,dc=com", SearchScope.BASE, Filter.createPresenceFilter("objectClass")); LDAPTestUtils.assertResultCodeEquals(searchResult, ResultCode.SUCCESS); // Close the connection and stop the listener. connection.close(); listener.shutDown(true);
Nested Class Summary |
---|
Nested classes/interfaces inherited from class java.lang.Thread |
---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary |
---|
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
LDAPListener(LDAPListenerConfig config)
Creates a new LDAPListener object with the provided configuration. |
Method Summary | |
---|---|
void |
closeAllConnections(boolean sendNoticeOfDisconnection)
Closes all connections that are currently established to this listener. |
java.net.InetAddress |
getListenAddress()
Retrieves the address on which this listener is accepting client connections. |
int |
getListenPort()
Retrieves the port on which this listener is accepting client connections. |
void |
run()
Operates in a loop, waiting for client connections to arrive and ensuring that they are handled properly. |
void |
shutDown(boolean closeExisting)
Indicates that this listener should stop accepting connections. |
void |
startListening()
Creates the server socket for this listener and starts listening for client connections. |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public LDAPListener(LDAPListenerConfig config)
LDAPListener
object with the provided configuration.
The startListening()
method must be called after creating the object
to actually start listening for requests.
config
- The configuration to use for this listener.Method Detail |
---|
public void startListening() throws java.io.IOException
java.io.IOException
- If a problem occurs while creating the server socket.@InternalUseOnly public void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public void closeAllConnections(boolean sendNoticeOfDisconnection)
sendNoticeOfDisconnection
- Indicates whether to send the client a
notice of disconnection unsolicited
notification before closing the
connection.public void shutDown(boolean closeExisting)
closeExisting
- Indicates whether to close existing connections that
may already be established.public java.net.InetAddress getListenAddress()
InetAddress.isAnyLocalAddress
method returns true
, then
clients should generally use localhost
to attempt to establish
connections.
null
if it is not currently listening for
client connections.public int getListenPort()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |