You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2015/11/24 08:59:34 UTC
[05/27] directory-kerby git commit: Handling default config value in
better way and solved DIRKRB-457
Handling default config value in better way and solved DIRKRB-457
Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/cf6e39b6
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/cf6e39b6
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/cf6e39b6
Branch: refs/heads/pkinit-support
Commit: cf6e39b6d4be9681dbf513a0c1417e5cf6ad839f
Parents: 955a845
Author: Kai Zheng <ka...@intel.com>
Authored: Mon Nov 16 21:09:09 2015 +0800
Committer: Kai Zheng <ka...@intel.com>
Committed: Mon Nov 16 21:09:09 2015 +0800
----------------------------------------------------------------------
.../ZookeeperIdentityBackend.java | 8 +--
.../main/java/org/apache/kerby/config/Conf.java | 48 ++++++-------
.../java/org/apache/kerby/config/Config.java | 35 +++++-----
.../org/apache/kerby/config/ConfigImpl.java | 71 ++++++++++++--------
.../java/org/apache/kerby/config/ConfTest.java | 11 +--
.../kerby/kerberos/kerb/client/KrbConfig.java | 43 ++++++++----
.../kerberos/kerb/client/KrbConfigKey.java | 2 +-
.../TestKrbConfigLoadWithDefaultRealm.java | 45 +++++++++++++
.../src/test/resources/krb5-kdcrealm.conf | 19 ++++++
.../kerberos/kerb/common/KrbConfHelper.java | 17 ++---
.../kerby/kerberos/kerb/server/KdcConfig.java | 44 ++++++------
.../kerby/kerberos/kerb/server/KdcUtil.java | 2 +-
12 files changed, 225 insertions(+), 120 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
index 3c91498..8449110 100644
--- a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
+++ b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
@@ -94,10 +94,10 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend {
* Init Zookeeper Server and connection service, used to initialize the backend.
*/
private void init() throws KrbException {
- zkHost = getConfig().getString(ZKConfKey.ZK_HOST);
- zkPort = getConfig().getInt(ZKConfKey.ZK_PORT);
+ zkHost = getConfig().getString(ZKConfKey.ZK_HOST, true);
+ zkPort = getConfig().getInt(ZKConfKey.ZK_PORT, true);
- String dataDirString = getConfig().getString(ZKConfKey.DATA_DIR);
+ String dataDirString = getConfig().getString(ZKConfKey.DATA_DIR, true);
if (dataDirString == null || dataDirString.isEmpty()) {
File zooKeeperDir = new File(getBackendConfig().getConfDir(), "zookeeper");
dataDir = new File(zooKeeperDir, "data");
@@ -111,7 +111,7 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend {
LOG.info("Data dir: " + dataDir);
- String dataLogDirString = getConfig().getString(ZKConfKey.DATA_LOG_DIR);
+ String dataLogDirString = getConfig().getString(ZKConfKey.DATA_LOG_DIR, true);
if (dataLogDirString == null || dataLogDirString.isEmpty()) {
File zooKeeperDir = new File(getBackendConfig().getConfDir(), "zookeeper");
dataLogDir = new File(zooKeeperDir, "datalog");
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-config/src/main/java/org/apache/kerby/config/Conf.java
----------------------------------------------------------------------
diff --git a/kerby-config/src/main/java/org/apache/kerby/config/Conf.java b/kerby-config/src/main/java/org/apache/kerby/config/Conf.java
index a207f52..ad47157 100644
--- a/kerby-config/src/main/java/org/apache/kerby/config/Conf.java
+++ b/kerby-config/src/main/java/org/apache/kerby/config/Conf.java
@@ -129,9 +129,9 @@ public class Conf implements Config {
}
@Override
- public String getString(ConfigKey name) {
+ public String getString(ConfigKey name, boolean useDefault) {
checkAndLoad();
- return config.getString(name);
+ return config.getString(name, useDefault);
}
@Override
@@ -169,24 +169,24 @@ public class Conf implements Config {
}
@Override
- public Boolean getBoolean(ConfigKey name) {
+ public Boolean getBoolean(ConfigKey name, boolean useDefault) {
checkAndLoad();
- return config.getBoolean(name);
+ return config.getBoolean(name, useDefault);
}
@Override
- public Boolean getBoolean(String name, boolean defaultValue) {
+ public Boolean getBoolean(String name, Boolean defaultValue) {
checkAndLoad();
return config.getBoolean(name, defaultValue);
}
@Override
- public void setBoolean(String name, boolean value) {
+ public void setBoolean(String name, Boolean value) {
setString(name, String.valueOf(value));
}
@Override
- public void setBoolean(ConfigKey name, boolean value) {
+ public void setBoolean(ConfigKey name, Boolean value) {
setString(name.getPropertyKey(), String.valueOf(value));
}
@@ -197,24 +197,24 @@ public class Conf implements Config {
}
@Override
- public Integer getInt(ConfigKey name) {
+ public Integer getInt(ConfigKey name, boolean useDefault) {
checkAndLoad();
- return config.getInt(name);
+ return config.getInt(name, useDefault);
}
@Override
- public Integer getInt(String name, int defaultValue) {
+ public Integer getInt(String name, Integer defaultValue) {
checkAndLoad();
return config.getInt(name, defaultValue);
}
@Override
- public void setInt(String name, int value) {
+ public void setInt(String name, Integer value) {
setString(name, String.valueOf(value));
}
@Override
- public void setInt(ConfigKey name, int value) {
+ public void setInt(ConfigKey name, Integer value) {
setString(name.getPropertyKey(), String.valueOf(value));
}
@@ -231,18 +231,18 @@ public class Conf implements Config {
}
@Override
- public Long getLong(String name, long defaultValue) {
+ public Long getLong(String name, Long defaultValue) {
checkAndLoad();
return config.getLong(name, defaultValue);
}
@Override
- public void setLong(String name, long value) {
+ public void setLong(String name, Long value) {
setString(name, String.valueOf(value));
}
@Override
- public void setLong(ConfigKey name, long value) {
+ public void setLong(ConfigKey name, Long value) {
setString(name.getPropertyKey(), String.valueOf(value));
}
@@ -253,24 +253,24 @@ public class Conf implements Config {
}
@Override
- public Float getFloat(ConfigKey name) {
+ public Float getFloat(ConfigKey name, boolean useDefault) {
checkAndLoad();
- return config.getFloat(name);
+ return config.getFloat(name, useDefault);
}
@Override
- public Float getFloat(String name, float defaultValue) {
+ public Float getFloat(String name, Float defaultValue) {
checkAndLoad();
return config.getFloat(name, defaultValue);
}
@Override
- public void setFloat(String name, float value) {
+ public void setFloat(String name, Float value) {
setString(name, String.valueOf(value));
}
@Override
- public void setFloat(ConfigKey name, float value) {
+ public void setFloat(ConfigKey name, Float value) {
setString(name.getPropertyKey(), String.valueOf(value));
}
@@ -311,15 +311,17 @@ public class Conf implements Config {
}
@Override
- public Class<?> getClass(String name, Class<?> defaultValue) throws ClassNotFoundException {
+ public Class<?> getClass(String name, Class<?> defaultValue)
+ throws ClassNotFoundException {
checkAndLoad();
return config.getClass(name, defaultValue);
}
@Override
- public Class<?> getClass(ConfigKey name) throws ClassNotFoundException {
+ public Class<?> getClass(ConfigKey name, boolean useDefault)
+ throws ClassNotFoundException {
checkAndLoad();
- return config.getClass(name);
+ return config.getClass(name, useDefault);
}
@Override
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-config/src/main/java/org/apache/kerby/config/Config.java
----------------------------------------------------------------------
diff --git a/kerby-config/src/main/java/org/apache/kerby/config/Config.java b/kerby-config/src/main/java/org/apache/kerby/config/Config.java
index 81fe9f3..1e8c32c 100644
--- a/kerby-config/src/main/java/org/apache/kerby/config/Config.java
+++ b/kerby-config/src/main/java/org/apache/kerby/config/Config.java
@@ -32,7 +32,7 @@ public interface Config {
Set<String> getNames();
String getString(String name);
- String getString(ConfigKey name);
+ String getString(ConfigKey name, boolean useDefault);
String getString(String name, String defaultValue);
/**
@@ -52,77 +52,76 @@ public interface Config {
String getTrimmed(String name);
String getTrimmed(ConfigKey name);
Boolean getBoolean(String name);
- Boolean getBoolean(ConfigKey name);
- Boolean getBoolean(String name, boolean defaultValue);
+ Boolean getBoolean(ConfigKey name, boolean useDefault);
+ Boolean getBoolean(String name, Boolean defaultValue);
/**
* Set a boolean value for the specified property
* @param name The property name
* @param value The boolean value
*/
- void setBoolean(String name, boolean value);
+ void setBoolean(String name, Boolean value);
/**
* Set a boolean value for the specified property
* @param name The config key name
* @param value The boolean value
*/
- void setBoolean(ConfigKey name, boolean value);
+ void setBoolean(ConfigKey name, Boolean value);
Integer getInt(String name);
- Integer getInt(ConfigKey name);
- Integer getInt(String name, int defaultValue);
+ Integer getInt(ConfigKey name, boolean useDefault);
+ Integer getInt(String name, Integer defaultValue);
/**
* Set an int value for the specified property
* @param name The property name
* @param value The string value
*/
- void setInt(String name, int value);
+ void setInt(String name, Integer value);
/**
* Set an int value for the specified property
* @param name The config key name
* @param value The int value
*/
- void setInt(ConfigKey name, int value);
-
+ void setInt(ConfigKey name, Integer value);
Long getLong(String name);
Long getLong(ConfigKey name);
- Long getLong(String name, long defaultValue);
+ Long getLong(String name, Long defaultValue);
/**
* Set a long value for the specified property
* @param name The property name
* @param value The long value
*/
- void setLong(String name, long value);
+ void setLong(String name, Long value);
/**
* Set a long value for the specified property
* @param name The config key name
* @param value The long value
*/
- void setLong(ConfigKey name, long value);
+ void setLong(ConfigKey name, Long value);
Float getFloat(String name);
- Float getFloat(ConfigKey name);
- Float getFloat(String name, float defaultValue);
+ Float getFloat(ConfigKey name, boolean useDefault);
+ Float getFloat(String name, Float defaultValue);
/**
* Set a float value for the specified property
* @param name The property name
* @param value The float value
*/
- void setFloat(String name, float value);
+ void setFloat(String name, Float value);
/**
* Set a float value for the specified property
* @param name The config key name
* @param value The float value
*/
- void setFloat(ConfigKey name, float value);
+ void setFloat(ConfigKey name, Float value);
List<String> getList(String name);
List<String> getList(String name, String[] defaultValue);
@@ -132,7 +131,7 @@ public interface Config {
Class<?> getClass(String name) throws ClassNotFoundException;
Class<?> getClass(String name, Class<?> defaultValue) throws ClassNotFoundException;
- Class<?> getClass(ConfigKey name) throws ClassNotFoundException;
+ Class<?> getClass(ConfigKey name, boolean useDefault) throws ClassNotFoundException;
<T> T getInstance(String name) throws ClassNotFoundException;
<T> T getInstance(ConfigKey name) throws ClassNotFoundException;
<T> T getInstance(String name, Class<T> xface) throws ClassNotFoundException;
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-config/src/main/java/org/apache/kerby/config/ConfigImpl.java
----------------------------------------------------------------------
diff --git a/kerby-config/src/main/java/org/apache/kerby/config/ConfigImpl.java b/kerby-config/src/main/java/org/apache/kerby/config/ConfigImpl.java
index e8a5b50..b4cf2b6 100644
--- a/kerby-config/src/main/java/org/apache/kerby/config/ConfigImpl.java
+++ b/kerby-config/src/main/java/org/apache/kerby/config/ConfigImpl.java
@@ -82,9 +82,10 @@ public class ConfigImpl implements Config {
}
@Override
- public String getString(ConfigKey name) {
- if (name.getDefaultValue() != null) {
- return getString(name.getPropertyKey(), (String) name.getDefaultValue());
+ public String getString(ConfigKey name, boolean useDefault) {
+ if (useDefault) {
+ return getString(name.getPropertyKey(),
+ (String) name.getDefaultValue());
}
return getString(name.getPropertyKey());
}
@@ -123,15 +124,24 @@ public class ConfigImpl implements Config {
}
@Override
- public Integer getInt(ConfigKey name) {
- if (name.getDefaultValue() != null) {
- return getInt(name.getPropertyKey(), (Integer) name.getDefaultValue());
+ public Integer getInt(ConfigKey name, boolean useDefault) {
+ if (useDefault) {
+ return getInt(name.getPropertyKey(),
+ getDefaultValueAs(name, Integer.class));
}
return getInt(name.getPropertyKey());
}
+ private <T> T getDefaultValueAs(ConfigKey confKey, Class<T> cls) {
+ Object defValue = confKey.getDefaultValue();
+ if (defValue != null && cls != null) {
+ return (T) defValue;
+ }
+ return null;
+ }
+
@Override
- public Integer getInt(String name, int defaultValue) {
+ public Integer getInt(String name, Integer defaultValue) {
Integer result = getInt(name);
if (result == null) {
result = defaultValue;
@@ -140,12 +150,12 @@ public class ConfigImpl implements Config {
}
@Override
- public void setInt(String name, int value) {
+ public void setInt(String name, Integer value) {
set(name, String.valueOf(value));
}
@Override
- public void setInt(ConfigKey name, int value) {
+ public void setInt(ConfigKey name, Integer value) {
set(name.getPropertyKey(), String.valueOf(value));
}
@@ -162,13 +172,14 @@ public class ConfigImpl implements Config {
@Override
public Long getLong(ConfigKey name) {
if (name.getDefaultValue() != null) {
- return getLong(name.getPropertyKey(), (Long) name.getDefaultValue());
+ return getLong(name.getPropertyKey(),
+ getDefaultValueAs(name, Long.class));
}
return getLong(name.getPropertyKey());
}
@Override
- public Long getLong(String name, long defaultValue) {
+ public Long getLong(String name, Long defaultValue) {
Long result = getLong(name);
if (result == null) {
result = defaultValue;
@@ -177,12 +188,12 @@ public class ConfigImpl implements Config {
}
@Override
- public void setLong(String name, long value) {
+ public void setLong(String name, Long value) {
set(name, String.valueOf(value));
}
@Override
- public void setLong(ConfigKey name, long value) {
+ public void setLong(ConfigKey name, Long value) {
set(name.getPropertyKey(), String.valueOf(value));
}
@@ -197,15 +208,16 @@ public class ConfigImpl implements Config {
}
@Override
- public Float getFloat(ConfigKey name) {
- if (name.getDefaultValue() != null) {
- return getFloat(name.getPropertyKey(), (Float) name.getDefaultValue());
+ public Float getFloat(ConfigKey name, boolean useDefault) {
+ if (useDefault) {
+ return getFloat(name.getPropertyKey(),
+ getDefaultValueAs(name, Float.class));
}
return getFloat(name.getPropertyKey());
}
@Override
- public Float getFloat(String name, float defaultValue) {
+ public Float getFloat(String name, Float defaultValue) {
Float result = getFloat(name);
if (result == null) {
result = defaultValue;
@@ -214,12 +226,12 @@ public class ConfigImpl implements Config {
}
@Override
- public void setFloat(String name, float value) {
+ public void setFloat(String name, Float value) {
set(name, String.valueOf(value));
}
@Override
- public void setFloat(ConfigKey name, float value) {
+ public void setFloat(ConfigKey name, Float value) {
set(name.getPropertyKey(), String.valueOf(value));
}
@@ -234,8 +246,8 @@ public class ConfigImpl implements Config {
}
@Override
- public Boolean getBoolean(ConfigKey name) {
- if (name.getDefaultValue() != null) {
+ public Boolean getBoolean(ConfigKey name, boolean useDefault) {
+ if (useDefault) {
return getBoolean(name.getPropertyKey(),
(Boolean) name.getDefaultValue());
}
@@ -243,7 +255,7 @@ public class ConfigImpl implements Config {
}
@Override
- public Boolean getBoolean(String name, boolean defaultValue) {
+ public Boolean getBoolean(String name, Boolean defaultValue) {
Boolean result = getBoolean(name);
if (result == null) {
result = defaultValue;
@@ -252,12 +264,12 @@ public class ConfigImpl implements Config {
}
@Override
- public void setBoolean(String name, boolean value) {
+ public void setBoolean(String name, Boolean value) {
set(name, String.valueOf(value));
}
@Override
- public void setBoolean(ConfigKey name, boolean value) {
+ public void setBoolean(ConfigKey name, Boolean value) {
set(name.getPropertyKey(), String.valueOf(value));
}
@@ -332,7 +344,8 @@ public class ConfigImpl implements Config {
}
@Override
- public Class<?> getClass(String name, Class<?> defaultValue) throws ClassNotFoundException {
+ public Class<?> getClass(String name, Class<?> defaultValue)
+ throws ClassNotFoundException {
Class<?> result = getClass(name);
if (result == null) {
result = defaultValue;
@@ -341,9 +354,11 @@ public class ConfigImpl implements Config {
}
@Override
- public Class<?> getClass(ConfigKey name) throws ClassNotFoundException {
- if (name.getDefaultValue() != null) {
- return getClass(name.getPropertyKey(), (Class<?>) name.getDefaultValue());
+ public Class<?> getClass(ConfigKey name, boolean useDefault)
+ throws ClassNotFoundException {
+ if (useDefault) {
+ return getClass(name.getPropertyKey(),
+ (Class<?>) name.getDefaultValue());
}
return getClass(name.getPropertyKey());
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-config/src/test/java/org/apache/kerby/config/ConfTest.java
----------------------------------------------------------------------
diff --git a/kerby-config/src/test/java/org/apache/kerby/config/ConfTest.java b/kerby-config/src/test/java/org/apache/kerby/config/ConfTest.java
index 185fe3f..33bc532 100644
--- a/kerby-config/src/test/java/org/apache/kerby/config/ConfTest.java
+++ b/kerby-config/src/test/java/org/apache/kerby/config/ConfTest.java
@@ -119,13 +119,16 @@ public class ConfTest {
@Test
public void testConfKey() {
Conf conf = new Conf();
- assertThat(conf.getString(TestConfKey.ADDRESS)).isEqualTo(TestConfKey.ADDRESS.getDefaultValue());
+ assertThat(conf.getString(TestConfKey.ADDRESS, true)).isEqualTo(
+ TestConfKey.ADDRESS.getDefaultValue());
Map<String, String> mapConfig = new HashMap<String, String>();
String myAddress = "www.google.com";
mapConfig.put(TestConfKey.ADDRESS.getPropertyKey(), myAddress);
conf.addMapConfig(mapConfig);
- assertThat(conf.getString(TestConfKey.ADDRESS)).isEqualTo(myAddress);
- assertThat(conf.getInt(TestConfKey.PORT)).isEqualTo(TestConfKey.PORT.getDefaultValue());
- assertThat(conf.getBoolean(TestConfKey.ENABLE)).isEqualTo(TestConfKey.ENABLE.getDefaultValue());
+ assertThat(conf.getString(TestConfKey.ADDRESS, true)).isEqualTo(myAddress);
+ assertThat(conf.getInt(TestConfKey.PORT, true)).isEqualTo(
+ TestConfKey.PORT.getDefaultValue());
+ assertThat(conf.getBoolean(TestConfKey.ENABLE, true)).isEqualTo(
+ TestConfKey.ENABLE.getDefaultValue());
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfig.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfig.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfig.java
index 4649e14..78706b1 100644
--- a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfig.java
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfig.java
@@ -31,7 +31,7 @@ import java.util.List;
public class KrbConfig extends Conf {
public boolean enableDebug() {
- return getBoolean(KrbConfigKey.KRB_DEBUG);
+ return getBoolean(KrbConfigKey.KRB_DEBUG, true);
}
/**
@@ -40,7 +40,8 @@ public class KrbConfig extends Conf {
* @return The kdc host
*/
public String getKdcHost() {
- return KrbConfHelper.getStringUnderSection(this, KrbConfigKey.KDC_HOST);
+ return KrbConfHelper.getStringUnderSection(this,
+ KrbConfigKey.KDC_HOST, true);
}
/**
@@ -77,8 +78,9 @@ public class KrbConfig extends Conf {
* @return true to allow UDP, false otherwise
*/
public boolean allowKdcUdp() {
- return getBoolean(KrbConfigKey.KDC_ALLOW_UDP) || KrbConfHelper.getIntUnderSection(this,
- KrbConfigKey.KDC_UDP_PORT) != null;
+ return getBoolean(KrbConfigKey.KDC_ALLOW_UDP, true)
+ || KrbConfHelper.getIntUnderSection(this,
+ KrbConfigKey.KDC_UDP_PORT) != null;
}
/**
@@ -87,7 +89,8 @@ public class KrbConfig extends Conf {
* @return true to allow TCP, false otherwise
*/
public boolean allowKdcTcp() {
- return getBoolean(KrbConfigKey.KDC_ALLOW_TCP) || KrbConfHelper.getIntUnderSection(this,
+ return getBoolean(KrbConfigKey.KDC_ALLOW_TCP, true)
+ || KrbConfHelper.getIntUnderSection(this,
KrbConfigKey.KDC_TCP_PORT) != null;
}
@@ -110,7 +113,18 @@ public class KrbConfig extends Conf {
* @return The kdc realm
*/
public String getKdcRealm() {
- return KrbConfHelper.getStringUnderSection(this, KrbConfigKey.KDC_REALM);
+ String realm = KrbConfHelper.getStringUnderSection(this,
+ KrbConfigKey.KDC_REALM, false);
+ if (realm == null) {
+ realm = KrbConfHelper.getStringUnderSection(this,
+ KrbConfigKey.DEFAULT_REALM, false);
+ if (realm == null) {
+ realm = KrbConfHelper.getStringUnderSection(this,
+ KrbConfigKey.KDC_REALM, true);
+ }
+ }
+
+ return realm;
}
/**
@@ -118,7 +132,7 @@ public class KrbConfig extends Conf {
* @return true if preauth required
*/
public boolean isPreauthRequired() {
- return getBoolean(KrbConfigKey.PREAUTH_REQUIRED);
+ return getBoolean(KrbConfigKey.PREAUTH_REQUIRED, true);
}
/**
@@ -126,7 +140,7 @@ public class KrbConfig extends Conf {
* @return The tgs principal
*/
public String getTgsPrincipal() {
- return getString(KrbConfigKey.TGS_PRINCIPAL);
+ return getString(KrbConfigKey.TGS_PRINCIPAL, true);
}
/**
@@ -142,7 +156,7 @@ public class KrbConfig extends Conf {
* @return true if empty address is allowed
*/
public boolean isEmptyAddressesAllowed() {
- return getBoolean(KrbConfigKey.EMPTY_ADDRESSES_ALLOWED);
+ return getBoolean(KrbConfigKey.EMPTY_ADDRESSES_ALLOWED, true);
}
/**
@@ -158,7 +172,7 @@ public class KrbConfig extends Conf {
* @return true if post dated is allowed
*/
public boolean isPostdatedAllowed() {
- return getBoolean(KrbConfigKey.POSTDATED_ALLOWED);
+ return getBoolean(KrbConfigKey.POSTDATED_ALLOWED, true);
}
/**
@@ -174,7 +188,7 @@ public class KrbConfig extends Conf {
* @return true if renew is allowed
*/
public boolean isRenewableAllowed() {
- return getBoolean(KrbConfigKey.RENEWABLE_ALLOWED);
+ return getBoolean(KrbConfigKey.RENEWABLE_ALLOWED, true);
}
/**
@@ -214,7 +228,7 @@ public class KrbConfig extends Conf {
* @return true if pa encrypt time required
*/
public boolean isPaEncTimestampRequired() {
- return getBoolean(KrbConfigKey.PA_ENC_TIMESTAMP_REQUIRED);
+ return getBoolean(KrbConfigKey.PA_ENC_TIMESTAMP_REQUIRED, true);
}
/**
@@ -222,7 +236,7 @@ public class KrbConfig extends Conf {
* @return true if body checksum verified
*/
public boolean isBodyChecksumVerified() {
- return getBoolean(KrbConfigKey.VERIFY_BODY_CHECKSUM);
+ return getBoolean(KrbConfigKey.VERIFY_BODY_CHECKSUM, true);
}
/**
@@ -230,7 +244,8 @@ public class KrbConfig extends Conf {
* @return The default realm
*/
public String getDefaultRealm() {
- return KrbConfHelper.getStringUnderSection(this, KrbConfigKey.DEFAULT_REALM);
+ return KrbConfHelper.getStringUnderSection(this,
+ KrbConfigKey.DEFAULT_REALM, true);
}
/**
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfigKey.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfigKey.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfigKey.java
index 295aa64..4533b4e 100644
--- a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfigKey.java
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbConfigKey.java
@@ -45,7 +45,7 @@ public enum KrbConfigKey implements SectionConfigKey {
RENEWABLE_ALLOWED(true),
VERIFY_BODY_CHECKSUM(true),
PERMITTED_ENCTYPES("aes128-cts-hmac-sha1-96", "libdefaults"),
- DEFAULT_REALM("EXAMPLE.COM", "libdefaults"),
+ DEFAULT_REALM(null, "libdefaults"),
DNS_LOOKUP_KDC(false, "libdefaults"),
DNS_LOOKUP_REALM(false, "libdefaults"),
ALLOW_WEAK_CRYPTO(true, "libdefaults"),
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-client/src/test/java/org/apache/kerby/kerberos/kerb/client/TestKrbConfigLoadWithDefaultRealm.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/test/java/org/apache/kerby/kerberos/kerb/client/TestKrbConfigLoadWithDefaultRealm.java b/kerby-kerb/kerb-client/src/test/java/org/apache/kerby/kerberos/kerb/client/TestKrbConfigLoadWithDefaultRealm.java
new file mode 100644
index 0000000..3835de4
--- /dev/null
+++ b/kerby-kerb/kerb-client/src/test/java/org/apache/kerby/kerberos/kerb/client/TestKrbConfigLoadWithDefaultRealm.java
@@ -0,0 +1,45 @@
+/**
+ * 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.client;
+
+import org.junit.Test;
+
+import java.io.File;
+import java.net.URL;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * Test for loading configurations form krb5.conf with default kdc realm.
+ * krb5.conf is the configuration file in MIT Kerberos.
+ */
+public class TestKrbConfigLoadWithDefaultRealm {
+
+ @Test
+ public void test() throws Exception {
+ URL confFileUrl = TestKrbConfigLoadWithDefaultRealm.class.getResource(
+ "/krb5-kdcrealm.conf");
+ File confFile = new File(confFileUrl.toURI());
+
+ KrbConfig krbConfig = new KrbConfig();
+ krbConfig.addIniConfig(confFile);
+ assertThat(krbConfig.getKdcRealm()).isEqualTo("KRB.COM");
+ }
+}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-client/src/test/resources/krb5-kdcrealm.conf
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/test/resources/krb5-kdcrealm.conf b/kerby-kerb/kerb-client/src/test/resources/krb5-kdcrealm.conf
new file mode 100644
index 0000000..43e68a5
--- /dev/null
+++ b/kerby-kerb/kerb-client/src/test/resources/krb5-kdcrealm.conf
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+[libdefaults]
+ default_realm = KRB.COM
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/KrbConfHelper.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/KrbConfHelper.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/KrbConfHelper.java
index 477dee1..27aab36 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/KrbConfHelper.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/KrbConfHelper.java
@@ -37,21 +37,22 @@ public class KrbConfHelper {
*/
private static final String LIST_SPLITTER = " |,";
- public static String getStringUnderSection(Conf conf, SectionConfigKey key) {
+ public static String getStringUnderSection(
+ Conf conf, SectionConfigKey key, boolean useDefault) {
Config subConfig = conf.getConfig(key.getSectionName());
if (subConfig != null) {
- return subConfig.getString(key);
+ return subConfig.getString(key, useDefault);
} else {
- return conf.getString(key);
+ return conf.getString(key, useDefault);
}
}
public static Boolean getBooleanUnderSection(Conf conf, SectionConfigKey key) {
Config subConfig = conf.getConfig(key.getSectionName());
if (subConfig != null) {
- return subConfig.getBoolean(key);
+ return subConfig.getBoolean(key, true);
} else {
- return conf.getBoolean(key);
+ return conf.getBoolean(key, true);
}
}
@@ -67,15 +68,15 @@ public class KrbConfHelper {
public static Integer getIntUnderSection(Conf conf, SectionConfigKey key) {
Config subConfig = conf.getConfig(key.getSectionName());
if (subConfig != null) {
- return subConfig.getInt(key);
+ return subConfig.getInt(key, true);
} else {
- return conf.getInt(key);
+ return conf.getInt(key, true);
}
}
public static String[] getStringArrayUnderSection(Conf conf,
SectionConfigKey key) {
- String value = getStringUnderSection(conf, key);
+ String value = getStringUnderSection(conf, key, true);
String[] values = value.split(LIST_SPLITTER);
return values;
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcConfig.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcConfig.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcConfig.java
index 82b8dfd..1f4bf8d 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcConfig.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcConfig.java
@@ -32,15 +32,16 @@ import java.util.List;
public class KdcConfig extends Conf {
public boolean enableDebug() {
- return getBoolean(KdcConfigKey.KRB_DEBUG);
+ return getBoolean(KdcConfigKey.KRB_DEBUG, true);
}
public String getKdcServiceName() {
- return getString(KdcConfigKey.KDC_SERVICE_NAME);
+ return getString(KdcConfigKey.KDC_SERVICE_NAME, true);
}
public String getKdcHost() {
- return KrbConfHelper.getStringUnderSection(this, KdcConfigKey.KDC_HOST);
+ return KrbConfHelper.getStringUnderSection(this,
+ KdcConfigKey.KDC_HOST, true);
}
public int getKdcPort() {
@@ -66,7 +67,8 @@ public class KdcConfig extends Conf {
* @return true to allow TCP, false otherwise
*/
public Boolean allowTcp() {
- return getBoolean(KdcConfigKey.KDC_ALLOW_TCP) || KrbConfHelper.getIntUnderSection(this,
+ return getBoolean(KdcConfigKey.KDC_ALLOW_TCP, true)
+ || KrbConfHelper.getIntUnderSection(this,
KdcConfigKey.KDC_TCP_PORT) != null;
}
@@ -75,7 +77,8 @@ public class KdcConfig extends Conf {
* @return true to allow UDP, false otherwise
*/
public Boolean allowUdp() {
- return getBoolean(KdcConfigKey.KDC_ALLOW_UDP) || KrbConfHelper.getIntUnderSection(this,
+ return getBoolean(KdcConfigKey.KDC_ALLOW_UDP, true)
+ || KrbConfHelper.getIntUnderSection(this,
KdcConfigKey.KDC_UDP_PORT) != null;
}
@@ -90,19 +93,19 @@ public class KdcConfig extends Conf {
public String getKdcRealm() {
return KrbConfHelper.getStringUnderSection(this,
- KdcConfigKey.KDC_REALM);
+ KdcConfigKey.KDC_REALM, true);
}
public String getKdcDomain() {
- return getString(KdcConfigKey.KDC_DOMAIN);
+ return getString(KdcConfigKey.KDC_DOMAIN, true);
}
public boolean isPreauthRequired() {
- return getBoolean(KdcConfigKey.PREAUTH_REQUIRED);
+ return getBoolean(KdcConfigKey.PREAUTH_REQUIRED, true);
}
public boolean isAllowTokenPreauth() {
- return getBoolean(KdcConfigKey.ALLOW_TOKEN_PREAUTH);
+ return getBoolean(KdcConfigKey.ALLOW_TOKEN_PREAUTH, true);
}
public long getAllowableClockSkew() {
@@ -110,23 +113,23 @@ public class KdcConfig extends Conf {
}
public boolean isEmptyAddressesAllowed() {
- return getBoolean(KdcConfigKey.EMPTY_ADDRESSES_ALLOWED);
+ return getBoolean(KdcConfigKey.EMPTY_ADDRESSES_ALLOWED, true);
}
public boolean isForwardableAllowed() {
- return getBoolean(KdcConfigKey.FORWARDABLE_ALLOWED);
+ return getBoolean(KdcConfigKey.FORWARDABLE_ALLOWED, true);
}
public boolean isPostdatedAllowed() {
- return getBoolean(KdcConfigKey.POSTDATED_ALLOWED);
+ return getBoolean(KdcConfigKey.POSTDATED_ALLOWED, true);
}
public boolean isProxiableAllowed() {
- return getBoolean(KdcConfigKey.PROXIABLE_ALLOWED);
+ return getBoolean(KdcConfigKey.PROXIABLE_ALLOWED, true);
}
public boolean isRenewableAllowed() {
- return getBoolean(KdcConfigKey.RENEWABLE_ALLOWED);
+ return getBoolean(KdcConfigKey.RENEWABLE_ALLOWED, true);
}
public long getMaximumRenewableLifetime() {
@@ -146,11 +149,11 @@ public class KdcConfig extends Conf {
}
public boolean isPaEncTimestampRequired() {
- return getBoolean(KdcConfigKey.PA_ENC_TIMESTAMP_REQUIRED);
+ return getBoolean(KdcConfigKey.PA_ENC_TIMESTAMP_REQUIRED, true);
}
public boolean isBodyChecksumVerified() {
- return getBoolean(KdcConfigKey.VERIFY_BODY_CHECKSUM);
+ return getBoolean(KdcConfigKey.VERIFY_BODY_CHECKSUM, true);
}
public boolean isRestrictAnonymousToTgt() {
@@ -164,14 +167,17 @@ public class KdcConfig extends Conf {
}
public String getVerifyKeyConfig() {
- return KrbConfHelper.getStringUnderSection(this, KdcConfigKey.VERIFY_KEY);
+ return KrbConfHelper.getStringUnderSection(this,
+ KdcConfigKey.VERIFY_KEY, true);
}
public String getDecryptionKeyConfig() {
- return KrbConfHelper.getStringUnderSection(this, KdcConfigKey.DECRYPTION_KEY);
+ return KrbConfHelper.getStringUnderSection(this,
+ KdcConfigKey.DECRYPTION_KEY, true);
}
public List<String> getIssuers() {
- return Arrays.asList(KrbConfHelper.getStringArrayUnderSection(this, KdcConfigKey.ISSUERS));
+ return Arrays.asList(KrbConfHelper.getStringArrayUnderSection(this,
+ KdcConfigKey.ISSUERS));
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cf6e39b6/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcUtil.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcUtil.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcUtil.java
index 1b41a08..198a2f0 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcUtil.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcUtil.java
@@ -90,7 +90,7 @@ public final class KdcUtil {
public static IdentityBackend getBackend(
BackendConfig backendConfig) throws KrbException {
String backendClassName = backendConfig.getString(
- KdcConfigKey.KDC_IDENTITY_BACKEND);
+ KdcConfigKey.KDC_IDENTITY_BACKEND, true);
if (backendClassName == null) {
backendClassName = MemoryIdentityBackend.class.getCanonicalName();
}