6552334: Enable DNS in Kerberos by default

Reviewed-by: valeriep
This commit is contained in:
Weijun Wang 2009-02-03 09:38:13 +08:00
parent 57a4df4e50
commit e7c217c72d
3 changed files with 18 additions and 12 deletions

View File

@ -39,7 +39,6 @@ import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.IOException; import java.io.IOException;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.List;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
@ -156,11 +155,7 @@ public class Config {
configFile = loadConfigFile(); configFile = loadConfigFile();
stanzaTable = parseStanzaTable(configFile); stanzaTable = parseStanzaTable(configFile);
} catch (IOException ioe) { } catch (IOException ioe) {
KrbException ke = new KrbException("Could not load " + // No krb5.conf, no problem. We'll use DNS etc.
"configuration file " +
ioe.getMessage());
ke.initCause(ioe);
throw(ke);
} }
} }
} }
@ -1057,7 +1052,12 @@ public class Config {
public boolean useDNS(String name) { public boolean useDNS(String name) {
String value = getDefault(name, "libdefaults"); String value = getDefault(name, "libdefaults");
if (value == null) { if (value == null) {
return getDefaultBooleanValue("dns_fallback", "libdefaults"); value = getDefault("dns_fallback", "libdefaults");
if ("false".equalsIgnoreCase(value)) {
return false;
} else {
return true;
}
} else { } else {
return value.equalsIgnoreCase("true"); return value.equalsIgnoreCase("true");
} }
@ -1117,7 +1117,7 @@ public class Config {
String realm = null; String realm = null;
String hostName = null; String hostName = null;
try { try {
hostName = InetAddress.getLocalHost().getHostName(); hostName = InetAddress.getLocalHost().getCanonicalHostName();
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
KrbException ke = new KrbException(Krb5.KRB_ERR_GENERIC, KrbException ke = new KrbException(Krb5.KRB_ERR_GENERIC,
"Unable to locate Kerberos realm: " + e.getMessage()); "Unable to locate Kerberos realm: " + e.getMessage());

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2006-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -133,7 +133,7 @@ class KrbServiceLocator {
*/ */
static String[] getKerberosService(String realmName, String protocol) { static String[] getKerberosService(String realmName, String protocol) {
String dnsUrl = "dns:///_kerberos." + protocol + realmName; String dnsUrl = "dns:///_kerberos." + protocol + "." + realmName;
String[] hostports = null; String[] hostports = null;
try { try {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,7 +23,8 @@
/* /*
* @test * @test
* @bug 6673164 * @bug 6673164
* @summary dns_fallback parse error * @bug 6552334
* @summary fix dns_fallback parse error, and use dns by default
*/ */
import sun.security.krb5.*; import sun.security.krb5.*;
@ -31,6 +32,8 @@ import java.io.*;
public class DnsFallback { public class DnsFallback {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
// for 6673164
check("true", "true", true); check("true", "true", true);
check("false", "true", false); check("false", "true", false);
check("true", "false", true); check("true", "false", true);
@ -39,6 +42,9 @@ public class DnsFallback {
check("false", null, false); check("false", null, false);
check(null, "true", true); check(null, "true", true);
check(null, "false", false); check(null, "false", false);
// for 6552334
check(null, null, true);
} }
static void check(String realm, String fallback, boolean output) throws Exception { static void check(String realm, String fallback, boolean output) throws Exception {