@NotMutable @ThreadSafety(level=NOT_THREADSAFE) public final class StartTLSExtendedRequest extends ExtendedRequest
SSLUtil class in conjunction with the
TrustStoreTrustManager class to ensure that
only certificates from trusted authorities will be accepted.
// Create an SSLContext that will be used to perform the cryptographic
// processing.
SSLUtil sslUtil = new SSLUtil(new TrustStoreTrustManager(trustStorePath));
SSLContext sslContext = sslUtil.createSSLContext();
// Create and process the extended request to secure a connection.
StartTLSExtendedRequest startTLSRequest =
new StartTLSExtendedRequest(sslContext);
ExtendedResult startTLSResult;
try
{
startTLSResult = connection.processExtendedOperation(startTLSRequest);
// This doesn't necessarily mean that the operation was successful, since
// some kinds of extended operations return non-success results under
// normal conditions.
}
catch (LDAPException le)
{
// For an extended operation, this generally means that a problem was
// encountered while trying to send the request or read the result.
startTLSResult = new ExtendedResult(le);
}
// Make sure that we can use the connection to interact with the server.
RootDSE rootDSE = connection.getRootDSE();
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
STARTTLS_REQUEST_OID
The OID (1.3.6.1.4.1.1466.20037) for the StartTLS extended request.
|
TYPE_EXTENDED_REQUEST_OID, TYPE_EXTENDED_REQUEST_VALUE| Constructor and Description |
|---|
StartTLSExtendedRequest()
Creates a new StartTLS extended request using a default SSL context.
|
StartTLSExtendedRequest(Control[] controls)
Creates a new StartTLS extended request using a default SSL context.
|
StartTLSExtendedRequest(ExtendedRequest extendedRequest)
Creates a new StartTLS extended request from the provided generic extended
request.
|
StartTLSExtendedRequest(javax.net.ssl.SSLContext sslContext)
Creates a new StartTLS extended request using the provided SSL context.
|
StartTLSExtendedRequest(javax.net.ssl.SSLContext sslContext,
Control[] controls)
Creates a new StartTLS extended request.
|
StartTLSExtendedRequest(javax.net.ssl.SSLSocketFactory sslSocketFactory)
Creates a new StartTLS extended request using the provided SSL socket
factory.
|
StartTLSExtendedRequest(javax.net.ssl.SSLSocketFactory sslSocketFactory,
Control[] controls)
Creates a new StartTLS extended request.
|
| Modifier and Type | Method and Description |
|---|---|
StartTLSExtendedRequest |
duplicate()
Creates a new instance of this LDAP request that may be modified without
impacting this request.
|
StartTLSExtendedRequest |
duplicate(Control[] controls)
Creates a new instance of this LDAP request that may be modified without
impacting this request.
|
java.lang.String |
getExtendedRequestName()
Retrieves the user-friendly name for the extended request, if available.
|
javax.net.ssl.SSLSocketFactory |
getSSLSocketFactory()
Retrieves the SSL socket factory that this extended request will use for
performing TLS negotiation.
|
ExtendedResult |
process(LDAPConnection connection,
int depth)
Sends this StartTLS request to the server and performs the necessary
client-side security processing if the operation is processed successfully.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this request to the provided buffer.
|
encodeProtocolOp, getLastMessageID, getOID, getOperationType, getProtocolOpType, getValue, hasValue, responseReceived, toCode, writeTofollowReferrals, getControl, getControlList, getControls, getIntermediateResponseListener, getReferralConnector, getReferralConnectorInternal, getReferralDepth, getResponseTimeoutMillis, hasControl, hasControl, setFollowReferrals, setIntermediateResponseListener, setReferralConnector, setReferralDepth, setResponseTimeoutMillis, toString@NotNull public static final java.lang.String STARTTLS_REQUEST_OID
public StartTLSExtendedRequest() throws LDAPException
LDAPException - If a problem occurs while trying to initialize a
default SSL context.public StartTLSExtendedRequest(@Nullable Control[] controls) throws LDAPException
controls - The set of controls to include in the request.LDAPException - If a problem occurs while trying to initialize a
default SSL context.public StartTLSExtendedRequest(@Nullable javax.net.ssl.SSLContext sslContext) throws LDAPException
sslContext - The SSL context to use to perform the negotiation. It
may be null to indicate that a default SSL
context should be used. If an SSL context is provided,
then it must already be initialized.LDAPException - If a problem occurs while trying to initialize a
default SSL context.public StartTLSExtendedRequest(@Nullable javax.net.ssl.SSLSocketFactory sslSocketFactory) throws LDAPException
sslSocketFactory - The SSL socket factory to use to convert an
insecure connection into a secure connection. It
may be null to indicate that a default
SSL socket factory should be used.LDAPException - If a problem occurs while trying to initialize a
default SSL socket factory.public StartTLSExtendedRequest(@Nullable javax.net.ssl.SSLContext sslContext, @Nullable Control[] controls) throws LDAPException
sslContext - The SSL context to use to perform the negotiation. It
may be null to indicate that a default SSL
context should be used. If an SSL context is provided,
then it must already be initialized.controls - The set of controls to include in the request.LDAPException - If a problem occurs while trying to initialize a
default SSL context.public StartTLSExtendedRequest(@Nullable javax.net.ssl.SSLSocketFactory sslSocketFactory, @Nullable Control[] controls) throws LDAPException
sslSocketFactory - The SSL socket factory to use to convert an
insecure connection into a secure connection. It
may be null to indicate that a default
SSL socket factory should be used.controls - The set of controls to include in the request.LDAPException - If a problem occurs while trying to initialize a
default SSL context.public StartTLSExtendedRequest(@NotNull ExtendedRequest extendedRequest) throws LDAPException
extendedRequest - The generic extended request to use to create this
StartTLS extended request.LDAPException - If a problem occurs while decoding the request.@NotNull public javax.net.ssl.SSLSocketFactory getSSLSocketFactory()
@NotNull public ExtendedResult process(@NotNull LDAPConnection connection, int depth) throws LDAPException
LDAPException if the
server returns a non-success result.process in class ExtendedRequestconnection - The connection to use to communicate with the directory
server.depth - The current referral depth for this request. It should
always be zero for the initial request, and should only
be incremented when following referrals.LDAPException - If the server returned a non-success result, or if
a problem was encountered while performing
client-side security processing.@NotNull public StartTLSExtendedRequest duplicate()
duplicate in interface ReadOnlyLDAPRequestduplicate in class ExtendedRequest@NotNull public StartTLSExtendedRequest duplicate(@Nullable Control[] controls)
duplicate in interface ReadOnlyLDAPRequestduplicate in class ExtendedRequestcontrols - The set of controls to include in the duplicate request.@NotNull public java.lang.String getExtendedRequestName()
getExtendedRequestName in class ExtendedRequestpublic void toString(@NotNull java.lang.StringBuilder buffer)
toString in interface ProtocolOptoString in interface ReadOnlyLDAPRequesttoString in class ExtendedRequestbuffer - The buffer to which to append a string representation of
this request.