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}