DigestMD5SASLBindRequestImpl.java revision 6870993d12bf8a2b9d5cd103dc5ccabc42f9bf5d
/*
* 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
*/
/**
* Digest-MD5 SASL bind request implementation.
*/
implements DigestMD5SASLBindRequest {
private final static class Client extends SASLBindClientImpl {
private final String authenticationID;
private final ByteString password;
private final SaslClient saslClient;
super(initialBindRequest);
// Create property map containing all the parameters.
}
} else {
/*
* Default strength allows all ciphers, so specifying a
* single cipher cannot be incompatible with the strength.
*/
}
}
if (serverAuth != null) {
}
}
}
.entrySet()) {
}
// Now create the client.
try {
serverName, props, this);
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", e);
}
}
return this;
} else {
return null;
}
}
try {
} catch (final SaslException e) {
final LocalizableMessage msg =
}
}
try {
} catch (final SaslException e) {
final LocalizableMessage msg =
}
}
}
}
} else {
}
}
}
private String authenticationID;
private byte[] password;
/**
* Do not use primitives for these so that we can distinguish between default
* settings (null) and values set by the caller.
*/
super(digestMD5SASLBindRequest);
}
this.authenticationID = authenticationID;
}
return this;
}
}
return this;
}
return new Client(this, serverName);
}
return additionalAuthParams;
}
public String getAuthenticationID() {
return authenticationID;
}
public String getAuthorizationID() {
return authorizationID;
}
return cipher;
}
public int getMaxReceiveBufferSize() {
}
public int getMaxSendBufferSize() {
}
public byte[] getPassword() {
return password;
}
return qopValues;
}
return realm;
}
public String getSASLMechanism() {
return SASL_MECHANISM_NAME;
}
public boolean isServerAuth() {
}
this.authenticationID = authenticationID;
return this;
}
this.authorizationID = authorizationID;
return this;
}
return this;
}
return this;
}
return this;
}
return this;
}
return this;
}
return this;
}
this.serverAuth = serverAuth;
return this;
}
}
}