6552334: Enable DNS in Kerberos by default
Reviewed-by: valeriep
This commit is contained in:
parent
57a4df4e50
commit
e7c217c72d
@ -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());
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user