CRAMMD5SASLBindRequestImpl.java revision 66be6c035cb58baccacb6831f7403d5c2247f4b2
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at legal-notices/CDDLv1_0.txt.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2010 Sun Microsystems, Inc.
* Portions Copyright 2011-2014 ForgeRock AS
*/
/**
* CRAM-MD5 SASL bind request implementation.
*/
implements CRAMMD5SASLBindRequest {
private static final class Client extends SASLBindClientImpl {
private final String authenticationID;
private final ByteString password;
private final SaslClient saslClient;
throws LdapException {
super(initialBindRequest);
try {
if (saslClient.hasInitialResponse()) {
} else {
}
} catch (final SaslException e) {
}
}
public void dispose() {
try {
} catch (final SaslException ignored) {
// Ignore the SASL exception.
}
}
if (saslClient.isComplete()) {
return true;
}
try {
.getServerSASLCredentials().toByteArray()));
return saslClient.isComplete();
} catch (final SaslException e) {
// FIXME: I18N need to have a better error message.
// FIXME: Is this the best result code?
"An error occurred during multi-stage authentication").setCause(e));
}
}
}
}
}
private String authenticationID;
private byte[] password;
super(cramMD5SASLBindRequest);
}
this.authenticationID = authenticationID;
}
return new Client(this, serverName);
}
public String getAuthenticationID() {
return authenticationID;
}
public byte[] getPassword() {
return password;
}
public String getSASLMechanism() {
return SASL_MECHANISM_NAME;
}
this.authenticationID = authenticationID;
return this;
}
return this;
}
return this;
}
}
}