001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2006-2008 Sun Microsystems, Inc.
026 */
027 package org.opends.server.types.operation;
028 import org.opends.messages.Message;
029
030
031
032 import org.opends.server.protocols.asn1.ASN1OctetString;
033 import org.opends.server.types.AuthenticationType;
034 import org.opends.server.types.ByteString;
035
036
037
038 /**
039 * This class defines a set of methods that are available for use by
040 * pre-parse plugins for bind operations. Note that this
041 * interface is intended only to define an API for use by plugins and
042 * is not intended to be implemented by any custom classes.
043 */
044 @org.opends.server.types.PublicAPI(
045 stability=org.opends.server.types.StabilityLevel.UNCOMMITTED,
046 mayInstantiate=false,
047 mayExtend=false,
048 mayInvoke=true)
049 public interface PreParseBindOperation
050 extends PreParseOperation
051 {
052 /**
053 * Retrieves the authentication type for this bind operation.
054 *
055 * @return The authentication type for this bind operation.
056 */
057 public AuthenticationType getAuthenticationType();
058
059
060
061 /**
062 * Retrieves a string representation of the protocol version
063 * associated with this bind request.
064 *
065 * @return A string representation of the protocol version
066 * associated with this bind request.
067 */
068 public String getProtocolVersion();
069
070
071
072 /**
073 * Specifies the string representation of the protocol version
074 * associated with this bind request.
075 *
076 * @param protocolVersion The string representation of the
077 * protocol version associated with this
078 * bind request.
079 */
080 public void setProtocolVersion(String protocolVersion);
081
082
083
084 /**
085 * Retrieves the raw, unprocessed bind DN for this bind operation as
086 * contained in the client request. The value may not actually
087 * contain a valid DN, as no validation will have been performed.
088 *
089 * @return The raw, unprocessed bind DN for this bind operation as
090 * contained in the client request.
091 */
092 public ByteString getRawBindDN();
093
094
095
096 /**
097 * Specifies the raw, unprocessed bind DN for this bind operation.
098 *
099 * @param rawBindDN The raw, unprocessed bind DN for this bind
100 * operation.
101 */
102 public void setRawBindDN(ByteString rawBindDN);
103
104
105
106 /**
107 * Retrieves the simple authentication password for this bind
108 * operation.
109 *
110 * @return The simple authentication password for this bind
111 * operation.
112 */
113 public ByteString getSimplePassword();
114
115
116
117 /**
118 * Specifies the simple authentication password for this bind
119 * operation.
120 *
121 * @param simplePassword The simple authentication password for
122 * this bind operation.
123 */
124 public void setSimplePassword(ByteString simplePassword);
125
126
127
128 /**
129 * Retrieves the SASL mechanism for this bind operation.
130 *
131 * @return The SASL mechanism for this bind operation, or
132 * <CODE>null</CODE> if the bind does not use SASL
133 * authentication.
134 */
135 public String getSASLMechanism();
136
137
138
139 /**
140 * Retrieves the SASL credentials for this bind operation.
141 *
142 * @return The SASL credentials for this bind operation, or
143 * <CODE>null</CODE> if there are none or if the bind does
144 * not use SASL authentication.
145 */
146 public ASN1OctetString getSASLCredentials();
147
148
149
150 /**
151 * Specifies the SASL credentials for this bind operation.
152 *
153 * @param saslMechanism The SASL mechanism for this bind
154 * operation.
155 * @param saslCredentials The SASL credentials for this bind
156 * operation, or <CODE>null</CODE> if there
157 * are none.
158 */
159 public void setSASLCredentials(String saslMechanism,
160 ASN1OctetString saslCredentials);
161
162
163
164 /**
165 * Specifies the set of server SASL credentials to include in the
166 * bind response.
167 *
168 * @param serverSASLCredentials The set of server SASL credentials
169 * to include in the bind response.
170 */
171 public void setServerSASLCredentials(ASN1OctetString
172 serverSASLCredentials);
173
174
175
176 /**
177 * Specifies the reason that the authentication failed.
178 *
179 * @param reason A human-readable message providing the reason
180 * that the authentication failed.
181 */
182 public void setAuthFailureReason(Message reason);
183 }
184