opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPReader.java
@@ -23,6 +23,7 @@ * * * Copyright 2009 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap; @@ -397,7 +398,7 @@ final int protocolVersion = (int) reader.readInteger(); final String authName = reader.readOctetStringAsString(); final byte authType = reader.peekType(); final ByteString authBytes = reader.readOctetString(authType); final byte[] authBytes = reader.readOctetString(authType).toByteArray(); final GenericBindRequest request = Requests.newGenericBindRequest( authName, authType, authBytes); opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPWriter.java
@@ -23,6 +23,7 @@ * * * Copyright 2009-2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap; opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/StaticUtils.java
@@ -23,6 +23,7 @@ * * * Copyright 2009-2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.util; @@ -33,6 +34,9 @@ import static org.forgerock.opendj.ldap.CoreMessages.ERR_HEX_DECODE_INVALID_LENGTH; import java.lang.reflect.InvocationTargetException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.text.ParseException; import java.util.*; import java.util.concurrent.Executors; @@ -68,6 +72,11 @@ */ public static final String EOL = System.getProperty("line.separator"); /** * A zero-length byte array. */ public static final byte[] EMPTY_BYTES = new byte[0]; // The name of the time zone for universal coordinated time (UTC). private static final String TIME_ZONE_UTC = "UTC"; @@ -1363,6 +1372,26 @@ /** * Construct a byte array containing the UTF-8 encoding of the provided * character array. * * @param chars * The character array to convert to a UTF-8 byte array. * @return A byte array containing the UTF-8 encoding of the provided * character array. */ public static byte[] getBytes(final char[] chars) { final Charset utf8 = Charset.forName("UTF-8"); final ByteBuffer buffer = utf8.encode(CharBuffer.wrap(chars)); final byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); return bytes; } /** * Construct a byte array containing the UTF-8 encoding of the provided * string. This is significantly faster than calling * {@link String#getBytes(String)} for ASCII strings. * @@ -2247,6 +2276,20 @@ /** * Returns a copy of the provided byte array. * * @param bytes * The byte array to be copied. * @return A copy of the provided byte array. */ public static byte[] copyOfBytes(final byte[] bytes) { return Arrays.copyOf(bytes, bytes.length); } /** * Retrieves the printable ASCII representation of the provided byte. * * @param b opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/asn1/ASN1Writer.java
@@ -23,6 +23,7 @@ * * * Copyright 2006-2009 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.asn1; @@ -245,6 +246,21 @@ * The type tag of the element. * @param value * The byte array containing the octet string data. * @return A reference to this ASN.1 writer. * @throws IOException * If an error occurs while writing the element. */ ASN1Writer writeOctetString(byte type, byte[] value) throws IOException; /** * Writes an octet string element using the provided type tag. * * @param type * The type tag of the element. * @param value * The byte array containing the octet string data. * @param offset * The offset in the byte array. * @param length @@ -295,6 +311,20 @@ * * @param value * The byte array containing the octet string data. * @return A reference to this ASN.1 writer. * @throws IOException * If an error occurs while writing the element. */ ASN1Writer writeOctetString(byte[] value) throws IOException; /** * Writes an octet string element using the Universal Octet String ASN.1 type * tag. * * @param value * The byte array containing the octet string data. * @param offset * The offset in the byte array. * @param length opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/asn1/AbstractASN1Writer.java
@@ -23,6 +23,7 @@ * * * Copyright 2006-2009 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.asn1; @@ -106,6 +107,27 @@ /** * {@inheritDoc} */ public ASN1Writer writeOctetString(byte type, byte[] value) throws IOException { return writeOctetString(type, value, 0, value.length); } /** * {@inheritDoc} */ public ASN1Writer writeOctetString(byte[] value) throws IOException { return writeOctetString(value, 0, value.length); } /** * {@inheritDoc} */ public ASN1Writer writeOctetString(final byte[] value, final int offset, final int length) throws IOException { opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/ByteString.java
@@ -23,6 +23,7 @@ * * * Copyright 2009-2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap; @@ -157,11 +158,7 @@ */ public static ByteString valueOf(final char[] chars) { Charset utf8 = Charset.forName("UTF-8"); ByteBuffer buffer = utf8.encode(CharBuffer.wrap(chars)); byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); return wrap(bytes); return wrap(StaticUtils.getBytes(chars)); } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/BindClientImpl.java
@@ -23,13 +23,13 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ConnectionSecurityLayer; import org.forgerock.opendj.ldap.ErrorResultException; import org.forgerock.opendj.ldap.controls.Control; @@ -56,9 +56,9 @@ */ BindClientImpl(final BindRequest initialBindRequest) { this.nextBindRequest = new GenericBindRequestImpl(initialBindRequest .getName(), initialBindRequest.getAuthenticationType(), ByteString .empty(), this); this.nextBindRequest = new GenericBindRequestImpl( initialBindRequest.getName(), initialBindRequest.getAuthenticationType(), new byte[0], this); for (final Control control : initialBindRequest.getControls()) { this.nextBindRequest.addControl(control); @@ -141,8 +141,7 @@ * The authentication value to be used in the next bind request. * @return A reference to this bind client. */ final BindClient setNextAuthenticationValue( final ByteString authenticationValue) final BindClient setNextAuthenticationValue(final byte[] authenticationValue) { nextBindRequest.setAuthenticationValue(authenticationValue); return this; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/CRAMMD5SASLBindRequest.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -32,7 +33,6 @@ import java.util.List; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.ErrorResultException; @@ -133,10 +133,14 @@ /** * Returns the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned password byte array, allowing applications to overwrite the * password after it has been used. * * @return The password of the user that the client wishes to bind as. */ ByteString getPassword(); byte[] getPassword(); @@ -172,6 +176,10 @@ /** * Sets the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * provided password byte array, allowing applications to overwrite the * password after it has been used. * * @param password * The password of the user that the client wishes to bind as, which @@ -182,7 +190,7 @@ * @throws NullPointerException * If {@code password} was {@code null}. */ CRAMMD5SASLBindRequest setPassword(ByteString password) CRAMMD5SASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/CRAMMD5SASLBindRequestImpl.java
@@ -23,12 +23,14 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.copyOfBytes; import static org.forgerock.opendj.ldap.ErrorResultException.newErrorResult; import javax.security.auth.callback.NameCallback; @@ -44,6 +46,7 @@ import org.forgerock.opendj.ldap.responses.BindResult; import org.forgerock.opendj.ldap.responses.Responses; import com.forgerock.opendj.util.StaticUtils; import com.forgerock.opendj.util.Validator; @@ -69,7 +72,7 @@ super(initialBindRequest); this.authenticationID = initialBindRequest.getAuthenticationID(); this.password = initialBindRequest.getPassword(); this.password = ByteString.wrap(initialBindRequest.getPassword()); try { @@ -153,12 +156,12 @@ private String authenticationID; private ByteString password; private byte[] password; CRAMMD5SASLBindRequestImpl(final String authenticationID, final ByteString password) final byte[] password) { Validator.ensureNotNull(authenticationID, password); this.authenticationID = authenticationID; @@ -182,7 +185,7 @@ { super(cramMD5SASLBindRequest); this.authenticationID = cramMD5SASLBindRequest.getAuthenticationID(); this.password = cramMD5SASLBindRequest.getPassword(); this.password = copyOfBytes(cramMD5SASLBindRequest.getPassword()); } @@ -211,7 +214,7 @@ /** * {@inheritDoc} */ public ByteString getPassword() public byte[] getPassword() { return password; } @@ -244,7 +247,7 @@ /** * {@inheritDoc} */ public CRAMMD5SASLBindRequest setPassword(final ByteString password) public CRAMMD5SASLBindRequest setPassword(final byte[] password) throws NullPointerException { Validator.ensureNotNull(password); @@ -261,7 +264,7 @@ throws NullPointerException { Validator.ensureNotNull(password); this.password = ByteString.valueOf(password); this.password = StaticUtils.getBytes(password); return this; } @@ -279,7 +282,7 @@ builder.append(", authenticationID="); builder.append(authenticationID); builder.append(", password="); builder.append(password); builder.append(ByteString.wrap(password)); builder.append(", controls="); builder.append(getControls()); builder.append(")"); opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/DigestMD5SASLBindRequest.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -33,7 +34,6 @@ import java.util.Map; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.ErrorResultException; @@ -323,10 +323,14 @@ /** * Returns the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned password byte array, allowing applications to overwrite the * password after it has been used. * * @return The password of the user that the client wishes to bind as. */ ByteString getPassword(); byte[] getPassword(); @@ -485,6 +489,10 @@ /** * Sets the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * provided password byte array, allowing applications to overwrite the * password after it has been used. * * @param password * The password of the user that the client wishes to bind as, which @@ -495,7 +503,7 @@ * @throws NullPointerException * If {@code password} was {@code null}. */ DigestMD5SASLBindRequest setPassword(ByteString password) DigestMD5SASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/DigestMD5SASLBindRequestImpl.java
@@ -23,12 +23,14 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.copyOfBytes; import static com.forgerock.opendj.util.StaticUtils.getExceptionMessage; import static com.forgerock.opendj.util.StaticUtils.joinCollection; import static org.forgerock.opendj.ldap.CoreMessages.ERR_SASL_PROTOCOL_ERROR; @@ -51,6 +53,7 @@ import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.responses.BindResult; import com.forgerock.opendj.util.StaticUtils; import com.forgerock.opendj.util.Validator; @@ -77,7 +80,7 @@ super(initialBindRequest); this.authenticationID = initialBindRequest.getAuthenticationID(); this.password = initialBindRequest.getPassword(); this.password = ByteString.wrap(initialBindRequest.getPassword()); this.realm = initialBindRequest.getRealm(); // Create property map containing all the parameters. @@ -299,13 +302,13 @@ private String authenticationID; private String authorizationID = null; private ByteString password; private byte[] password; private String realm = null; DigestMD5SASLBindRequestImpl(final String authenticationID, final ByteString password) final byte[] password) { Validator.ensureNotNull(authenticationID, password); this.authenticationID = authenticationID; @@ -340,7 +343,7 @@ this.authenticationID = digestMD5SASLBindRequest.getAuthenticationID(); this.authorizationID = digestMD5SASLBindRequest.getAuthorizationID(); this.password = digestMD5SASLBindRequest.getPassword(); this.password = copyOfBytes(digestMD5SASLBindRequest.getPassword()); this.realm = digestMD5SASLBindRequest.getRealm(); } @@ -459,7 +462,7 @@ * {@inheritDoc} */ @Override public ByteString getPassword() public byte[] getPassword() { return password; } @@ -580,7 +583,7 @@ * {@inheritDoc} */ @Override public DigestMD5SASLBindRequest setPassword(final ByteString password) public DigestMD5SASLBindRequest setPassword(final byte[] password) throws NullPointerException { Validator.ensureNotNull(password); @@ -598,7 +601,7 @@ throws NullPointerException { Validator.ensureNotNull(password); this.password = ByteString.valueOf(password); this.password = StaticUtils.getBytes(password); return this; } @@ -645,7 +648,7 @@ builder.append(", realm="); builder.append(realm); builder.append(", password="); builder.append(password); builder.append(ByteString.wrap(password)); builder.append(", controls="); builder.append(getControls()); builder.append(")"); opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/GSSAPISASLBindRequest.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -35,7 +36,6 @@ import javax.security.auth.Subject; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.ErrorResultException; @@ -270,11 +270,15 @@ /** * Returns the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned password byte array, allowing applications to overwrite the * password after it has been used. * <p> * <b>NOTE</b>: this will not be used if a {@code Subject} is specified. * * @return The password of the user that the client wishes to bind as. */ ByteString getPassword(); byte[] getPassword(); @@ -431,6 +435,10 @@ /** * Sets the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * provided password byte array, allowing applications to overwrite the * password after it has been used. * <p> * <b>NOTE</b>: this will not be used if a {@code Subject} is specified. * * @param password @@ -442,7 +450,7 @@ * @throws NullPointerException * If {@code password} was {@code null}. */ GSSAPISASLBindRequest setPassword(ByteString password) GSSAPISASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/GSSAPISASLBindRequestImpl.java
@@ -23,12 +23,14 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.copyOfBytes; import static com.forgerock.opendj.util.StaticUtils.getExceptionMessage; import static com.forgerock.opendj.util.StaticUtils.joinCollection; import static org.forgerock.opendj.ldap.CoreMessages.*; @@ -176,8 +178,10 @@ } else { this.subject = kerberos5Login(initialBindRequest.getAuthenticationID(), initialBindRequest.getPassword(), initialBindRequest.getRealm(), this.subject = kerberos5Login( initialBindRequest.getAuthenticationID(), ByteString.wrap(initialBindRequest.getPassword()), initialBindRequest.getRealm(), initialBindRequest.getKDCAddress()); } @@ -369,7 +373,7 @@ // Ignored if subject is non-null. private String authenticationID = null; private ByteString password = null; private byte[] password = null; private String realm = null; private String kdcAddress = null; @@ -389,7 +393,7 @@ GSSAPISASLBindRequestImpl(final String authenticationID, final ByteString password) final byte[] password) { Validator.ensureNotNull(authenticationID, password); this.authenticationID = authenticationID; @@ -415,7 +419,7 @@ this.subject = gssapiSASLBindRequest.getSubject(); this.authenticationID = gssapiSASLBindRequest.getAuthenticationID(); this.password = gssapiSASLBindRequest.getPassword(); this.password = copyOfBytes(gssapiSASLBindRequest.getPassword()); this.realm = gssapiSASLBindRequest.getRealm(); this.kdcAddress = gssapiSASLBindRequest.getKDCAddress(); @@ -554,7 +558,7 @@ * {@inheritDoc} */ @Override public ByteString getPassword() public byte[] getPassword() { return password; } @@ -684,7 +688,7 @@ * {@inheritDoc} */ @Override public GSSAPISASLBindRequest setPassword(final ByteString password) public GSSAPISASLBindRequest setPassword(final byte[] password) throws NullPointerException { Validator.ensureNotNull(password); @@ -702,7 +706,7 @@ throws NullPointerException { Validator.ensureNotNull(password); this.password = ByteString.valueOf(password); this.password = StaticUtils.getBytes(password); return this; } @@ -772,7 +776,7 @@ builder.append(", realm="); builder.append(realm); builder.append(", password="); builder.append(password); builder.append(ByteString.wrap(password)); } builder.append(", controls="); builder.append(getControls()); opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/GenericBindRequest.java
@@ -23,6 +23,7 @@ * * * Copyright 2009 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -70,10 +71,14 @@ /** * Returns the authentication information for this bind request. The content * is defined by the authentication mechanism. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned byte array, allowing applications to overwrite any sensitive data * such as passwords after it has been used. * * @return The authentication information. */ ByteString getAuthenticationValue(); byte[] getAuthenticationValue(); @@ -121,6 +126,10 @@ /** * Sets the authentication information for this generic bind request in a form * defined by the authentication mechanism. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned byte array, allowing applications to overwrite any sensitive data * such as passwords after it has been used. * * @param bytes * The authentication information for this generic bind request in a @@ -132,7 +141,7 @@ * @throws NullPointerException * If {@code bytes} was {@code null}. */ GenericBindRequest setAuthenticationValue(ByteString bytes) GenericBindRequest setAuthenticationValue(byte[] bytes) throws UnsupportedOperationException, NullPointerException; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/GenericBindRequestImpl.java
@@ -23,12 +23,15 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.copyOfBytes; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ErrorResultException; @@ -46,7 +49,7 @@ private String name; private ByteString authenticationValue; private byte[] authenticationValue; private byte authenticationType; @@ -56,7 +59,7 @@ * Creates a new generic bind request using a generic bind client. */ GenericBindRequestImpl(final String name, final byte authenticationType, final ByteString authenticationValue) final byte[] authenticationValue) { this.name = name; this.authenticationType = authenticationType; @@ -73,7 +76,7 @@ * package. */ GenericBindRequestImpl(final String name, final byte authenticationType, final ByteString authenticationValue, final BindClient bindClient) final byte[] authenticationValue, final BindClient bindClient) { this.name = name; this.authenticationType = authenticationType; @@ -98,8 +101,10 @@ { super(genericBindRequest); this.name = genericBindRequest.getName(); this.authenticationType = genericBindRequest.getAuthenticationType(); this.authenticationValue = genericBindRequest.getAuthenticationValue(); this.authenticationType = genericBindRequest .getAuthenticationType(); this.authenticationValue = copyOfBytes(genericBindRequest .getAuthenticationValue()); this.bindClient = null; // Create a new bind client each time. } @@ -134,7 +139,7 @@ /** * {@inheritDoc} */ public ByteString getAuthenticationValue() public byte[] getAuthenticationValue() { return authenticationValue; } @@ -167,7 +172,7 @@ /** * {@inheritDoc} */ public GenericBindRequest setAuthenticationValue(final ByteString bytes) public GenericBindRequest setAuthenticationValue(final byte[] bytes) throws UnsupportedOperationException, NullPointerException { Validator.ensureNotNull(bytes); @@ -202,7 +207,7 @@ builder.append(", authenticationType="); builder.append(getAuthenticationType()); builder.append(", authenticationValue="); builder.append(getAuthenticationValue()); builder.append(ByteString.wrap(getAuthenticationValue())); builder.append(", controls="); builder.append(getControls()); builder.append(")"); opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/PlainSASLBindRequest.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -32,7 +33,6 @@ import java.util.List; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.ErrorResultException; @@ -140,10 +140,14 @@ /** * Returns the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned password byte array, allowing applications to overwrite the * password after it has been used. * * @return The password of the user that the client wishes to bind as. */ ByteString getPassword(); byte[] getPassword(); @@ -201,6 +205,10 @@ /** * Sets the password of the user that the client wishes to bind as. * <p> * Unless otherwise indicated, implementations will store a reference to the * provided password byte array, allowing applications to overwrite the * password after it has been used. * * @param password * The password of the user that the client wishes to bind as, which @@ -211,7 +219,7 @@ * @throws NullPointerException * If {@code password} was {@code null}. */ PlainSASLBindRequest setPassword(ByteString password) PlainSASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/PlainSASLBindRequestImpl.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -43,6 +44,7 @@ import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.responses.BindResult; import com.forgerock.opendj.util.StaticUtils; import com.forgerock.opendj.util.Validator; @@ -68,7 +70,7 @@ super(initialBindRequest); this.authenticationID = initialBindRequest.getAuthenticationID(); this.password = initialBindRequest.getPassword(); this.password = ByteString.wrap(initialBindRequest.getPassword()); try { @@ -139,12 +141,12 @@ private String authenticationID; private String authorizationID; private ByteString password; private byte[] password; PlainSASLBindRequestImpl(final String authenticationID, final ByteString password) final byte[] password) { Validator.ensureNotNull(authenticationID, password); this.authenticationID = authenticationID; @@ -169,7 +171,7 @@ super(plainSASLBindRequest); this.authenticationID = plainSASLBindRequest.getAuthenticationID(); this.authorizationID = plainSASLBindRequest.getAuthorizationID(); this.password = plainSASLBindRequest.getPassword(); this.password = StaticUtils.copyOfBytes(plainSASLBindRequest.getPassword()); } @@ -196,7 +198,7 @@ public ByteString getPassword() public byte[] getPassword() { return password; } @@ -230,7 +232,7 @@ public PlainSASLBindRequest setPassword(final ByteString password) public PlainSASLBindRequest setPassword(final byte[] password) { Validator.ensureNotNull(password); this.password = password; @@ -246,7 +248,7 @@ throws NullPointerException { Validator.ensureNotNull(password); this.password = ByteString.valueOf(password); this.password = StaticUtils.getBytes(password); return this; } @@ -266,7 +268,7 @@ builder.append(", authorizationID="); builder.append(authorizationID); builder.append(", password="); builder.append(password); builder.append(ByteString.wrap(password)); builder.append(", controls="); builder.append(getControls()); builder.append(")"); opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/Requests.java
@@ -23,12 +23,15 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.EMPTY_BYTES; import static com.forgerock.opendj.util.StaticUtils.getBytes; import static org.forgerock.opendj.ldap.CoreMessages.WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE; import javax.net.ssl.SSLContext; @@ -300,6 +303,30 @@ * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. * @return The new CRAM-MD5 SASL bind request. * @throws NullPointerException * If {@code authenticationID} or {@code password} was {@code null}. */ public static CRAMMD5SASLBindRequest newCRAMMD5SASLBindRequest( final String authenticationID, final byte[] password) throws NullPointerException { return new CRAMMD5SASLBindRequestImpl(authenticationID, password); } /** * Creates a new CRAM-MD5 SASL bind request having the provided authentication * ID and password. * * @param authenticationID * The authentication ID of the user. The authentication ID usually * has the form "dn:" immediately followed by the distinguished name * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. The * password will be converted to a UTF-8 octet string. * @return The new CRAM-MD5 SASL bind request. @@ -307,10 +334,10 @@ * If {@code authenticationID} or {@code password} was {@code null}. */ public static CRAMMD5SASLBindRequest newCRAMMD5SASLBindRequest( final String authenticationID, final ByteString password) final String authenticationID, final char[] password) throws NullPointerException { return new CRAMMD5SASLBindRequestImpl(authenticationID, password); return new CRAMMD5SASLBindRequestImpl(authenticationID, getBytes(password)); } @@ -364,6 +391,30 @@ * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. * @return The new DIGEST-MD5 SASL bind request. * @throws NullPointerException * If {@code authenticationID} or {@code password} was {@code null}. */ public static DigestMD5SASLBindRequest newDigestMD5SASLBindRequest( final String authenticationID, final byte[] password) throws NullPointerException { return new DigestMD5SASLBindRequestImpl(authenticationID, password); } /** * Creates a new DIGEST-MD5 SASL bind request having the provided * authentication ID and password, but no realm or authorization ID. * * @param authenticationID * The authentication ID of the user. The authentication ID usually * has the form "dn:" immediately followed by the distinguished name * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. The * password will be converted to a UTF-8 octet string. * @return The new DIGEST-MD5 SASL bind request. @@ -371,10 +422,11 @@ * If {@code authenticationID} or {@code password} was {@code null}. */ public static DigestMD5SASLBindRequest newDigestMD5SASLBindRequest( final String authenticationID, final ByteString password) final String authenticationID, final char[] password) throws NullPointerException { return new DigestMD5SASLBindRequestImpl(authenticationID, password); return new DigestMD5SASLBindRequestImpl(authenticationID, getBytes(password)); } @@ -406,7 +458,7 @@ * If {@code authenticationValue} was {@code null}. */ public static GenericBindRequest newGenericBindRequest( final byte authenticationType, final ByteString authenticationValue) final byte authenticationType, final byte[] authenticationValue) throws NullPointerException { Validator.ensureNotNull(authenticationValue); @@ -438,7 +490,7 @@ * If {@code name} or {@code authenticationValue} was {@code null}. */ public static GenericBindRequest newGenericBindRequest(final String name, final byte authenticationType, final ByteString authenticationValue) final byte authenticationType, final byte[] authenticationValue) throws NullPointerException { Validator.ensureNotNull(name, authenticationValue); @@ -502,6 +554,30 @@ * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. * @return The new GSSAPI SASL bind request. * @throws NullPointerException * If {@code authenticationID} or {@code password} was {@code null}. */ public static GSSAPISASLBindRequest newGSSAPISASLBindRequest( final String authenticationID, final byte[] password) throws NullPointerException { return new GSSAPISASLBindRequestImpl(authenticationID, password); } /** * Creates a new GSSAPI SASL bind request having the provided authentication * ID and password, but no realm, KDC address, or authorization ID. * * @param authenticationID * The authentication ID of the user. The authentication ID usually * has the form "dn:" immediately followed by the distinguished name * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. The * password will be converted to a UTF-8 octet string. * @return The new GSSAPI SASL bind request. @@ -509,10 +585,10 @@ * If {@code authenticationID} or {@code password} was {@code null}. */ public static GSSAPISASLBindRequest newGSSAPISASLBindRequest( final String authenticationID, final ByteString password) final String authenticationID, final char[] password) throws NullPointerException { return new GSSAPISASLBindRequestImpl(authenticationID, password); return new GSSAPISASLBindRequestImpl(authenticationID, getBytes(password)); } @@ -714,6 +790,30 @@ * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. * @return The new Plain SASL bind request. * @throws NullPointerException * If {@code authenticationID} or {@code password} was {@code null}. */ public static PlainSASLBindRequest newPlainSASLBindRequest( final String authenticationID, final byte[] password) throws NullPointerException { return new PlainSASLBindRequestImpl(authenticationID, password); } /** * Creates a new Plain SASL bind request having the provided authentication ID * and password, but no authorization ID. * * @param authenticationID * The authentication ID of the user. The authentication ID usually * has the form "dn:" immediately followed by the distinguished name * of the user, or "u:" followed by a user ID string, but other forms * are permitted. * @param password * The password of the user that the client wishes to bind as. The * password will be converted to a UTF-8 octet string. * @return The new Plain SASL bind request. @@ -721,10 +821,10 @@ * If {@code authenticationID} or {@code password} was {@code null}. */ public static PlainSASLBindRequest newPlainSASLBindRequest( final String authenticationID, final ByteString password) final String authenticationID, final char[] password) throws NullPointerException { return new PlainSASLBindRequestImpl(authenticationID, password); return new PlainSASLBindRequestImpl(authenticationID, getBytes(password)); } @@ -811,7 +911,7 @@ */ public static SimpleBindRequest newSimpleBindRequest() { return new SimpleBindRequestImpl("", ByteString.empty()); return new SimpleBindRequestImpl("", EMPTY_BYTES); } @@ -837,10 +937,40 @@ * If {@code name} or {@code password} was {@code null}. */ public static SimpleBindRequest newSimpleBindRequest(final String name, final byte[] password) throws NullPointerException { Validator.ensureNotNull(name, password); return new SimpleBindRequestImpl(name, password); } /** * Creates a new simple bind request having the provided name and password * suitable for name/password authentication. The name will be decoded using * the default schema. * <p> * The LDAP protocol defines the Bind name to be a distinguished name, however * some LDAP implementations have relaxed this constraint and allow other * identities to be used, such as the user's email address. * * @param name * The name of the Directory object that the client wishes to bind * as, which may be empty. * @param password * The password of the Directory object that the client wishes to * bind as, which may be empty indicating that an unauthenticated * bind is to be performed. The password will be converted to a UTF-8 * octet string. * @return The new simple bind request. * @throws NullPointerException * If {@code name} or {@code password} was {@code null}. */ public static SimpleBindRequest newSimpleBindRequest(final String name, final char[] password) throws NullPointerException { Validator.ensureNotNull(name, password); return new SimpleBindRequestImpl(name, ByteString.valueOf(password)); return new SimpleBindRequestImpl(name, getBytes(password)); } @@ -995,6 +1125,9 @@ /** * Creates an unmodifiable CRAM MD5 SASL bind request of the provided request. * <p> * The returned bind request creates defensive copies of the password in order * to maintain immutability. * * @param request * The CRAM MD5 SASL bind request to be copied. @@ -1038,6 +1171,9 @@ /** * Creates an unmodifiable digest MD5 SASL bind request of the provided * request. * <p> * The returned bind request creates defensive copies of the password in order * to maintain immutability. * * @param request * The digest MD5 SASL bind request to be copied. @@ -1080,6 +1216,9 @@ /** * Creates an unmodifiable generic bind request of the provided request. * <p> * The returned bind request creates defensive copies of the authentication * value in order to maintain immutability. * * @param request * The generic bind request to be copied. @@ -1122,6 +1261,9 @@ /** * Creates an unmodifiable GSSAPI SASL bind request of the provided request. * <p> * The returned bind request creates defensive copies of the password in order * to maintain immutability. * * @param request * The GSSAPI SASL bind request to be copied. @@ -1207,6 +1349,9 @@ /** * Creates an unmodifiable plain SASL bind request of the provided request. * <p> * The returned bind request creates defensive copies of the password in order * to maintain immutability. * * @param request * The plain SASL bind request to be copied. @@ -1249,6 +1394,9 @@ /** * Creates an unmodifiable simple bind request of the provided request. * <p> * The returned bind request creates defensive copies of the password in order * to maintain immutability. * * @param request * The simple bind request to be copied. opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/SASLBindClientImpl.java
@@ -23,6 +23,7 @@ * * * Copyright 2009 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -270,6 +271,6 @@ throw new RuntimeException("Error encoding SaslCredentials"); } return setNextAuthenticationValue(builder.toByteString()); return setNextAuthenticationValue(builder.toByteString().toByteArray()); } } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/SimpleBindRequest.java
@@ -23,6 +23,7 @@ * * * Copyright 2009-2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -31,7 +32,6 @@ import java.util.List; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.ErrorResultException; @@ -105,11 +105,15 @@ * Returns the password of the Directory object that the client wishes to bind * as. The password may be empty (but never {@code null}) when used for of * anonymous or unauthenticated binds. * <p> * Unless otherwise indicated, implementations will store a reference to the * returned password byte array, allowing applications to overwrite the * password after it has been used. * * @return The password of the Directory object that the client wishes to bind * as. */ ByteString getPassword(); byte[] getPassword(); @@ -142,6 +146,10 @@ * Sets the password of the Directory object that the client wishes to bind * as. The password may be empty (but never {@code null}) when used for of * anonymous or unauthenticated binds. * <p> * Unless otherwise indicated, implementations will store a reference to the * provided password byte array, allowing applications to overwrite the * password after it has been used. * * @param password * The password of the Directory object that the client wishes to @@ -153,7 +161,7 @@ * @throws NullPointerException * If {@code password} was {@code null}. */ SimpleBindRequest setPassword(ByteString password) SimpleBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException; opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/SimpleBindRequestImpl.java
@@ -23,17 +23,19 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.ldap.LDAPConstants.TYPE_AUTHENTICATION_SIMPLE; import static com.forgerock.opendj.ldap.LDAPConstants.*; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ErrorResultException; import com.forgerock.opendj.util.StaticUtils; import com.forgerock.opendj.util.Validator; @@ -44,7 +46,7 @@ final class SimpleBindRequestImpl extends AbstractBindRequest<SimpleBindRequest> implements SimpleBindRequest { private ByteString password = ByteString.empty(); private byte[] password = new byte[0]; private String name = "".intern(); @@ -64,7 +66,7 @@ * @throws NullPointerException * If {@code name} or {@code password} was {@code null}. */ SimpleBindRequestImpl(final String name, final ByteString password) SimpleBindRequestImpl(final String name, final byte[] password) throws NullPointerException { this.name = name; @@ -87,7 +89,7 @@ { super(simpleBindRequest); this.name = simpleBindRequest.getName(); this.password = simpleBindRequest.getPassword(); this.password = StaticUtils.copyOfBytes(simpleBindRequest.getPassword()); } @@ -121,7 +123,7 @@ /** * {@inheritDoc} */ public ByteString getPassword() public byte[] getPassword() { return password; } @@ -144,7 +146,7 @@ /** * {@inheritDoc} */ public SimpleBindRequest setPassword(final ByteString password) public SimpleBindRequest setPassword(final byte[] password) throws UnsupportedOperationException, NullPointerException { Validator.ensureNotNull(password); @@ -161,7 +163,7 @@ throws UnsupportedOperationException, NullPointerException { Validator.ensureNotNull(password); this.password = ByteString.valueOf(password); this.password = StaticUtils.getBytes(password); return this; } @@ -178,7 +180,7 @@ builder.append(getName()); builder.append(", authentication=simple"); builder.append(", password="); builder.append(getPassword()); builder.append(ByteString.wrap(getPassword())); builder.append(", controls="); builder.append(getControls()); builder.append(")"); opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/UnmodifiableCRAMMD5SASLBindRequestImpl.java
@@ -23,12 +23,14 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import com.forgerock.opendj.util.StaticUtils; /** * Unmodifiable CRAM-MD5 SASL bind request implementation. @@ -47,8 +49,9 @@ } @Override public ByteString getPassword() { return impl.getPassword(); public byte[] getPassword() { // Defensive copy. return StaticUtils.copyOfBytes(impl.getPassword()); } @Override @@ -58,7 +61,7 @@ } @Override public CRAMMD5SASLBindRequest setPassword(ByteString password) public CRAMMD5SASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException { throw new UnsupportedOperationException(); } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/UnmodifiableDigestMD5SASLBindRequestImpl.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -32,7 +33,8 @@ import java.util.Map; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import com.forgerock.opendj.util.StaticUtils; /** * Unmodifiable digest-MD5 SASL bind request implementation. @@ -89,8 +91,9 @@ } @Override public ByteString getPassword() { return impl.getPassword(); public byte[] getPassword() { // Defensive copy. return StaticUtils.copyOfBytes(impl.getPassword()); } @Override @@ -140,7 +143,7 @@ } @Override public DigestMD5SASLBindRequest setPassword(ByteString password) public DigestMD5SASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException { throw new UnsupportedOperationException(); } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/UnmodifiableGSSAPISASLBindRequestImpl.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; @@ -34,7 +35,8 @@ import javax.security.auth.Subject; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import com.forgerock.opendj.util.StaticUtils; /** * Unmodifiable GSSAPI SASL bind request implementation. @@ -90,8 +92,9 @@ } @Override public ByteString getPassword() { return impl.getPassword(); public byte[] getPassword() { // Defensive copy. return StaticUtils.copyOfBytes(impl.getPassword()); } @Override @@ -145,7 +148,7 @@ } @Override public GSSAPISASLBindRequest setPassword(ByteString password) public GSSAPISASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException { throw new UnsupportedOperationException(); } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/UnmodifiableGenericBindRequestImpl.java
@@ -23,11 +23,16 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.opendj.ldap.ByteString; import com.forgerock.opendj.util.StaticUtils; /** * Unmodifiable generic bind request implementation. @@ -40,8 +45,9 @@ super(impl); } public ByteString getAuthenticationValue() { return impl.getAuthenticationValue(); public byte[] getAuthenticationValue() { // Defensive copy. return StaticUtils.copyOfBytes(impl.getAuthenticationValue()); } public GenericBindRequest setAuthenticationType(byte type) @@ -49,7 +55,7 @@ throw new UnsupportedOperationException(); } public GenericBindRequest setAuthenticationValue(ByteString bytes) public GenericBindRequest setAuthenticationValue(byte[] bytes) throws UnsupportedOperationException, NullPointerException { throw new UnsupportedOperationException(); } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/UnmodifiablePlainSASLBindRequestImpl.java
@@ -23,12 +23,14 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.i18n.LocalizedIllegalArgumentException; import org.forgerock.opendj.ldap.ByteString; import com.forgerock.opendj.util.StaticUtils; /** * Unmodifiable plain SASL bind request implementation. @@ -52,8 +54,9 @@ } @Override public ByteString getPassword() { return impl.getPassword(); public byte[] getPassword() { // Defensive copy. return StaticUtils.copyOfBytes(impl.getPassword()); } @Override @@ -70,7 +73,7 @@ } @Override public PlainSASLBindRequest setPassword(ByteString password) public PlainSASLBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException { throw new UnsupportedOperationException(); } opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/requests/UnmodifiableSimpleBindRequestImpl.java
@@ -23,11 +23,16 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.opendj.ldap.ByteString; import com.forgerock.opendj.util.StaticUtils; /** * Unmodifiable simple bind request implementation. @@ -40,8 +45,9 @@ super(impl); } public ByteString getPassword() { return impl.getPassword(); public byte[] getPassword() { // Defensive copy. return StaticUtils.copyOfBytes(impl.getPassword()); } public SimpleBindRequest setName(String name) @@ -49,7 +55,7 @@ throw new UnsupportedOperationException(); } public SimpleBindRequest setPassword(ByteString password) public SimpleBindRequest setPassword(byte[] password) throws UnsupportedOperationException, NullPointerException { throw new UnsupportedOperationException(); } opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/ConnectionFactoryTestCase.java
@@ -160,7 +160,7 @@ factories[3][0] = new AuthenticatedConnectionFactory( new LDAPConnectionFactory("localhost", TestCaseUtils.getLdapPort()), Requests.newCRAMMD5SASLBindRequest("id:user", ByteString.valueOf("password"))); "password".toCharArray())); // LDAPConnectionFactory with default options factories[4][0] = new LDAPConnectionFactory("localhost", @@ -189,8 +189,7 @@ factories[6][0] = new AuthenticatedConnectionFactory( new LDAPConnectionFactory(new InetSocketAddress("127.0.0.1", TestCaseUtils.getLdapPort()), options), Requests .newDigestMD5SASLBindRequest("id:user", ByteString.valueOf("password")) .newDigestMD5SASLBindRequest("id:user", "password".toCharArray()) .addQOP(DigestMD5SASLBindRequest.QOP_AUTH_CONF) .setCipher(DigestMD5SASLBindRequest.CIPHER_LOW)); @@ -282,8 +281,8 @@ // Use the handler to get the result asynchronously. final CountDownLatch latch = new CountDownLatch(1); final MyResultHandler handler = new MyResultHandler(latch); final FutureResult<AsynchronousConnection> future = factory .getAsynchronousConnection(handler); factory.getAsynchronousConnection(handler); // Since we don't have anything to do, we would rather // be notified by the latch when the other thread calls our handler. latch.await(); // should do a timed wait rather? opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/requests/CRAMMD5SASLBindRequestTestCase.java
@@ -23,13 +23,16 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.opendj.ldap.ByteString; import static com.forgerock.opendj.util.StaticUtils.EMPTY_BYTES; import static com.forgerock.opendj.util.StaticUtils.getBytes; import org.forgerock.opendj.ldap.requests.CRAMMD5SASLBindRequest; import org.forgerock.opendj.ldap.requests.Requests; import org.testng.annotations.DataProvider; @@ -45,8 +48,8 @@ public Object[][] getCRAMMD5SASLBindRequests() throws Exception { final CRAMMD5SASLBindRequest[] requests = { Requests.newCRAMMD5SASLBindRequest("id1", ByteString.empty()), Requests.newCRAMMD5SASLBindRequest("id2", ByteString.valueOf("test")) }; Requests.newCRAMMD5SASLBindRequest("id1", EMPTY_BYTES), Requests.newCRAMMD5SASLBindRequest("id2", getBytes("test")) }; final Object[][] objArray = new Object[requests.length][1]; for (int i = 0; i < requests.length; i++) { opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/requests/DigestMD5SASLBindRequestTestCase.java
@@ -23,23 +23,26 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.EMPTY_BYTES; import static com.forgerock.opendj.util.StaticUtils.getBytes; import static org.testng.Assert.assertEquals; import java.util.Arrays; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.requests.DigestMD5SASLBindRequest; import org.forgerock.opendj.ldap.requests.Requests; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Tests Digest MD5 SASL requests. */ @@ -49,9 +52,8 @@ public Object[][] getDigestMD5SASLBindRequests() throws Exception { final DigestMD5SASLBindRequest[] requests = { Requests.newDigestMD5SASLBindRequest("id1", ByteString.empty()), Requests.newDigestMD5SASLBindRequest("id2", ByteString .valueOf("password")) }; Requests.newDigestMD5SASLBindRequest("id1", EMPTY_BYTES), Requests.newDigestMD5SASLBindRequest("id2", getBytes("password")) }; final Object[][] objArray = new Object[requests.length][1]; for (int i = 0; i < requests.length; i++) { opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/requests/GSSAPISASLBindRequestTestCase.java
@@ -23,17 +23,19 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import static com.forgerock.opendj.util.StaticUtils.EMPTY_BYTES; import static com.forgerock.opendj.util.StaticUtils.getBytes; import static org.testng.Assert.assertEquals; import java.util.Arrays; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.requests.BindRequest; import org.forgerock.opendj.ldap.requests.GSSAPISASLBindRequest; import org.forgerock.opendj.ldap.requests.Requests; @@ -49,9 +51,9 @@ public Object[][] getGSSAPISASLBindRequests() throws Exception { final GSSAPISASLBindRequest[] requests = { Requests.newGSSAPISASLBindRequest("id1", ByteString.empty()), Requests.newGSSAPISASLBindRequest("id1", EMPTY_BYTES), Requests .newGSSAPISASLBindRequest("id2", ByteString.valueOf("password")) }; .newGSSAPISASLBindRequest("id2", getBytes("password")) }; final Object[][] objArray = new Object[requests.length][1]; for (int i = 0; i < requests.length; i++) { opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/requests/GenericBindRequestTestCase.java
@@ -23,13 +23,16 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.opendj.ldap.ByteString; import static com.forgerock.opendj.util.StaticUtils.EMPTY_BYTES; import static com.forgerock.opendj.util.StaticUtils.getBytes; import org.forgerock.opendj.ldap.requests.GenericBindRequest; import org.forgerock.opendj.ldap.requests.Requests; import org.testng.annotations.DataProvider; @@ -48,13 +51,11 @@ { final GenericBindRequest[] requests = { Requests.newGenericBindRequest(LDAPConstants.TYPE_AUTHENTICATION_SASL, ByteString.empty()), EMPTY_BYTES), Requests.newGenericBindRequest( LDAPConstants.TYPE_AUTHENTICATION_SIMPLE, ByteString .valueOf("password")), LDAPConstants.TYPE_AUTHENTICATION_SIMPLE, getBytes("password")), Requests.newGenericBindRequest("username", LDAPConstants.TYPE_AUTHENTICATION_SIMPLE, ByteString .valueOf("password")) }; LDAPConstants.TYPE_AUTHENTICATION_SIMPLE, getBytes("password")) }; final Object[][] objArray = new Object[requests.length][1]; for (int i = 0; i < requests.length; i++) { opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/requests/PlainSASLBindRequestTestCase.java
@@ -23,13 +23,16 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package org.forgerock.opendj.ldap.requests; import org.forgerock.opendj.ldap.ByteString; import static com.forgerock.opendj.util.StaticUtils.EMPTY_BYTES; import static com.forgerock.opendj.util.StaticUtils.getBytes; import org.forgerock.opendj.ldap.requests.PlainSASLBindRequest; import org.forgerock.opendj.ldap.requests.Requests; import org.testng.annotations.DataProvider; @@ -45,8 +48,8 @@ public Object[][] getPlainSASLBindRequests() throws Exception { final PlainSASLBindRequest[] requests = { Requests.newPlainSASLBindRequest("id1", ByteString.empty()), Requests.newPlainSASLBindRequest("id2", ByteString.valueOf("password")) }; Requests.newPlainSASLBindRequest("id1", EMPTY_BYTES), Requests.newPlainSASLBindRequest("id2", getBytes("password")) }; final Object[][] objArray = new Object[requests.length][1]; for (int i = 0; i < requests.length; i++) { opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/requests/RequestTestCase.java
@@ -129,7 +129,6 @@ /** * Creates the test requests. * * @param <T> * @return * @throws Exception */ opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/ConnectionFactoryProvider.java
@@ -604,20 +604,20 @@ { bindRequest = Requests.newDigestMD5SASLBindRequest( getAuthID(DigestMD5SASLBindRequest.SASL_MECHANISM_NAME), ByteString.valueOf(getPassword())).setAuthorizationID(getAuthzID()) getPassword()).setAuthorizationID(getAuthzID()) .setRealm(getRealm()); } else if (mech.equals(CRAMMD5SASLBindRequest.SASL_MECHANISM_NAME)) { bindRequest = Requests.newCRAMMD5SASLBindRequest( getAuthID(CRAMMD5SASLBindRequest.SASL_MECHANISM_NAME), ByteString .valueOf(getPassword())); getAuthID(CRAMMD5SASLBindRequest.SASL_MECHANISM_NAME), getPassword()); } else if (mech.equals(GSSAPISASLBindRequest.SASL_MECHANISM_NAME)) { bindRequest = Requests.newGSSAPISASLBindRequest( getAuthID(GSSAPISASLBindRequest.SASL_MECHANISM_NAME), ByteString.valueOf(getPassword())).setKDCAddress(getKDC()).setRealm( getPassword()).setKDCAddress(getKDC()).setRealm( getRealm()).setAuthorizationID(getAuthzID()); } else if (mech.equals(ExternalSASLBindRequest.SASL_MECHANISM_NAME)) @@ -641,7 +641,7 @@ { bindRequest = Requests.newPlainSASLBindRequest( getAuthID(PlainSASLBindRequest.SASL_MECHANISM_NAME), ByteString.valueOf(getPassword())).setAuthorizationID(getAuthzID()); getPassword()).setAuthorizationID(getAuthzID()); } else {