blob: fc2d45b4475d071ffca4a766de5c8ec7ccdef07c [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.kerby.kerberos.kerb.admin.kadmin.remote;
import org.apache.kerby.KOption;
import org.apache.kerby.KOptionInfo;
import org.apache.kerby.KOptionType;
/**
* This defines all the options that come across the client side.
*/
public enum AdminOption implements KOption {
NONE(null),
ADMIN_REALM(new KOptionInfo("admin-realm", "kdc realm",
KOptionType.STR)),
ADMIN_HOST(new KOptionInfo("admin-host", "kdc host",
KOptionType.STR)),
ADMIN_TCP_PORT(new KOptionInfo("admin-tcp-port", "kdc tcp port",
KOptionType.INT)),
ALLOW_UDP(new KOptionInfo("allow-udp", "allow udp",
KOptionType.BOOL)),
ALLOW_TCP(new KOptionInfo("allow-tcp", "allow tcp",
KOptionType.BOOL)),
ADMIN_UDP_PORT(new KOptionInfo("admin-udp-port", "kdc udp port",
KOptionType.INT)),
CONN_TIMEOUT(new KOptionInfo("conn-timeout", "connection timeout",
KOptionType.INT)),
LIFE_TIME(new KOptionInfo("life-time", "life time",
KOptionType.INT)),
START_TIME(new KOptionInfo("start-time", "start time",
KOptionType.INT)),
RENEWABLE_TIME(new KOptionInfo("renewable_lifetime", "renewable lifetime",
KOptionType.INT)),
INCLUDE_ADDRESSES(new KOptionInfo("include_addresses",
"include addresses")),
AS_ENTERPRISE_PN(new KOptionInfo("as-enterprise-pn",
"client is enterprise principal name")),
CLIENT_PRINCIPAL(new KOptionInfo("client-principal", "Client principal",
KOptionType.STR)),
USE_PASSWD(new KOptionInfo("using-password", "using password")),
USER_PASSWD(new KOptionInfo("user-passwd", "User plain password")),
USE_KEYTAB(new KOptionInfo("use-keytab", "use keytab")),
USE_DFT_KEYTAB(new KOptionInfo("use-dft-keytab", "use default client keytab (with -k)")),
KEYTAB_FILE(new KOptionInfo("keytab-file", "filename of keytab to use",
KOptionType.FILE)),
KRB5_CACHE(new KOptionInfo("krb5-cache", "K5 cache name",
KOptionType.FILE)),
SERVICE_PRINCIPAL(new KOptionInfo("service-principal", "service principal",
KOptionType.STR)),
SERVER_PRINCIPAL(new KOptionInfo("admin-principal", "admin principal",
KOptionType.STR)),
ARMOR_CACHE(new KOptionInfo("armor-cache", "armor credential cache",
KOptionType.STR)),
USE_TGT(new KOptionInfo("use-tgt", "use tgt to get service ticket",
KOptionType.OBJ)),
CONF_DIR(new KOptionInfo("-conf", "conf dir", KOptionType.DIR));
private final KOptionInfo optionInfo;
AdminOption(KOptionInfo optionInfo) {
this.optionInfo = optionInfo;
}
@Override
public KOptionInfo getOptionInfo() {
return optionInfo;
}
public static AdminOption fromOptionName(String optionName) {
if (optionName != null) {
for (AdminOption ko : values()) {
if (ko.optionInfo != null
&& ko.optionInfo.getName().equals(optionName)) {
return ko;
}
}
}
return NONE;
}
}