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 legal-notices/CDDLv1_0.txt
010 * or http://forgerock.org/license/CDDLv1.0.html.
011 * See the License for the specific language governing permissions
012 * and limitations under the License.
013 *
014 * When distributing Covered Code, include this CDDL HEADER in each
015 * file and include the License file at legal-notices/CDDLv1_0.txt.
016 * If applicable, add the following below this CDDL HEADER, with the
017 * fields enclosed by brackets "[]" replaced with your own identifying
018 * information:
019 *      Portions Copyright [yyyy] [name of copyright owner]
020 *
021 * CDDL HEADER END
022 *
023 *
024 *      Copyright 2008 Sun Microsystems, Inc.
025 */
026package org.opends.server.admin.std.client;
027
028
029
030import org.opends.server.admin.ManagedObjectDefinition;
031import org.opends.server.admin.PropertyException;
032import org.opends.server.admin.std.meta.GSSAPISASLMechanismHandlerCfgDefn.QualityOfProtection;
033import org.opends.server.admin.std.server.GSSAPISASLMechanismHandlerCfg;
034
035
036
037/**
038 * A client-side interface for reading and modifying GSSAPI SASL
039 * Mechanism Handler settings.
040 * <p>
041 * The GSSAPI SASL mechanism performs all processing related to SASL
042 * GSSAPI authentication using Kerberos V5.
043 */
044public interface GSSAPISASLMechanismHandlerCfgClient extends SASLMechanismHandlerCfgClient {
045
046  /**
047   * Get the configuration definition associated with this GSSAPI SASL Mechanism Handler.
048   *
049   * @return Returns the configuration definition associated with this GSSAPI SASL Mechanism Handler.
050   */
051  ManagedObjectDefinition<? extends GSSAPISASLMechanismHandlerCfgClient, ? extends GSSAPISASLMechanismHandlerCfg> definition();
052
053
054
055  /**
056   * Gets the "identity-mapper" property.
057   * <p>
058   * Specifies the name of the identity mapper that is to be used with
059   * this SASL mechanism handler to match the Kerberos principal
060   * included in the SASL bind request to the corresponding user in the
061   * directory.
062   *
063   * @return Returns the value of the "identity-mapper" property.
064   */
065  String getIdentityMapper();
066
067
068
069  /**
070   * Sets the "identity-mapper" property.
071   * <p>
072   * Specifies the name of the identity mapper that is to be used with
073   * this SASL mechanism handler to match the Kerberos principal
074   * included in the SASL bind request to the corresponding user in the
075   * directory.
076   *
077   * @param value The value of the "identity-mapper" property.
078   * @throws PropertyException
079   *           If the new value is invalid.
080   */
081  void setIdentityMapper(String value) throws PropertyException;
082
083
084
085  /**
086   * Gets the "java-class" property.
087   * <p>
088   * Specifies the fully-qualified name of the Java class that
089   * provides the SASL mechanism handler implementation.
090   *
091   * @return Returns the value of the "java-class" property.
092   */
093  String getJavaClass();
094
095
096
097  /**
098   * Sets the "java-class" property.
099   * <p>
100   * Specifies the fully-qualified name of the Java class that
101   * provides the SASL mechanism handler implementation.
102   *
103   * @param value The value of the "java-class" property.
104   * @throws PropertyException
105   *           If the new value is invalid.
106   */
107  void setJavaClass(String value) throws PropertyException;
108
109
110
111  /**
112   * Gets the "kdc-address" property.
113   * <p>
114   * Specifies the address of the KDC that is to be used for Kerberos
115   * processing.
116   * <p>
117   * If provided, this property must be a fully-qualified
118   * DNS-resolvable name. If this property is not provided, then the
119   * server attempts to determine it from the system-wide Kerberos
120   * configuration.
121   *
122   * @return Returns the value of the "kdc-address" property.
123   */
124  String getKdcAddress();
125
126
127
128  /**
129   * Sets the "kdc-address" property.
130   * <p>
131   * Specifies the address of the KDC that is to be used for Kerberos
132   * processing.
133   * <p>
134   * If provided, this property must be a fully-qualified
135   * DNS-resolvable name. If this property is not provided, then the
136   * server attempts to determine it from the system-wide Kerberos
137   * configuration.
138   *
139   * @param value The value of the "kdc-address" property.
140   * @throws PropertyException
141   *           If the new value is invalid.
142   */
143  void setKdcAddress(String value) throws PropertyException;
144
145
146
147  /**
148   * Gets the "keytab" property.
149   * <p>
150   * Specifies the path to the keytab file that should be used for
151   * Kerberos processing.
152   * <p>
153   * If provided, this is either an absolute path or one that is
154   * relative to the server instance root.
155   *
156   * @return Returns the value of the "keytab" property.
157   */
158  String getKeytab();
159
160
161
162  /**
163   * Sets the "keytab" property.
164   * <p>
165   * Specifies the path to the keytab file that should be used for
166   * Kerberos processing.
167   * <p>
168   * If provided, this is either an absolute path or one that is
169   * relative to the server instance root.
170   *
171   * @param value The value of the "keytab" property.
172   * @throws PropertyException
173   *           If the new value is invalid.
174   */
175  void setKeytab(String value) throws PropertyException;
176
177
178
179  /**
180   * Gets the "principal-name" property.
181   * <p>
182   * Specifies the principal name.
183   * <p>
184   * It can either be a simple user name or a service name such as
185   * host/example.com. If this property is not provided, then the
186   * server attempts to build the principal name by appending the fully
187   * qualified domain name to the string "ldap/".
188   *
189   * @return Returns the value of the "principal-name" property.
190   */
191  String getPrincipalName();
192
193
194
195  /**
196   * Sets the "principal-name" property.
197   * <p>
198   * Specifies the principal name.
199   * <p>
200   * It can either be a simple user name or a service name such as
201   * host/example.com. If this property is not provided, then the
202   * server attempts to build the principal name by appending the fully
203   * qualified domain name to the string "ldap/".
204   *
205   * @param value The value of the "principal-name" property.
206   * @throws PropertyException
207   *           If the new value is invalid.
208   */
209  void setPrincipalName(String value) throws PropertyException;
210
211
212
213  /**
214   * Gets the "quality-of-protection" property.
215   * <p>
216   * The name of a property that specifies the quality of protection
217   * the server will support.
218   *
219   * @return Returns the value of the "quality-of-protection" property.
220   */
221  QualityOfProtection getQualityOfProtection();
222
223
224
225  /**
226   * Sets the "quality-of-protection" property.
227   * <p>
228   * The name of a property that specifies the quality of protection
229   * the server will support.
230   *
231   * @param value The value of the "quality-of-protection" property.
232   * @throws PropertyException
233   *           If the new value is invalid.
234   */
235  void setQualityOfProtection(QualityOfProtection value) throws PropertyException;
236
237
238
239  /**
240   * Gets the "realm" property.
241   * <p>
242   * Specifies the realm to be used for GSSAPI authentication.
243   *
244   * @return Returns the value of the "realm" property.
245   */
246  String getRealm();
247
248
249
250  /**
251   * Sets the "realm" property.
252   * <p>
253   * Specifies the realm to be used for GSSAPI authentication.
254   *
255   * @param value The value of the "realm" property.
256   * @throws PropertyException
257   *           If the new value is invalid.
258   */
259  void setRealm(String value) throws PropertyException;
260
261
262
263  /**
264   * Gets the "server-fqdn" property.
265   * <p>
266   * Specifies the DNS-resolvable fully-qualified domain name for the
267   * system.
268   *
269   * @return Returns the value of the "server-fqdn" property.
270   */
271  String getServerFqdn();
272
273
274
275  /**
276   * Sets the "server-fqdn" property.
277   * <p>
278   * Specifies the DNS-resolvable fully-qualified domain name for the
279   * system.
280   *
281   * @param value The value of the "server-fqdn" property.
282   * @throws PropertyException
283   *           If the new value is invalid.
284   */
285  void setServerFqdn(String value) throws PropertyException;
286
287}