8034762: Move krb5.conf related tests into a single place
authorweijun
Wed, 12 Feb 2014 19:20:43 +0800
changeset 22958 273ddc5c37f3
parent 22957 99352a8b3052
child 22959 2d9d076cee41
child 22977 f8f315760941
8034762: Move krb5.conf related tests into a single place Reviewed-by: xuelei
jdk/test/sun/security/krb5/ConfPlusProp.java
jdk/test/sun/security/krb5/ConfigWithQuotations.java
jdk/test/sun/security/krb5/DnsFallback.java
jdk/test/sun/security/krb5/ParseCAPaths.java
jdk/test/sun/security/krb5/ParseConfig.java
jdk/test/sun/security/krb5/config/ConfPlusProp.java
jdk/test/sun/security/krb5/config/ConfigWithQuotations.java
jdk/test/sun/security/krb5/config/DnsFallback.java
jdk/test/sun/security/krb5/config/ParseCAPaths.java
jdk/test/sun/security/krb5/config/ParseConfig.java
jdk/test/sun/security/krb5/config/confplusprop.conf
jdk/test/sun/security/krb5/config/confplusprop2.conf
jdk/test/sun/security/krb5/config/edu.mit.Kerberos
jdk/test/sun/security/krb5/config/krb5-capaths.conf
jdk/test/sun/security/krb5/config/krb5.conf
jdk/test/sun/security/krb5/confplusprop.conf
jdk/test/sun/security/krb5/confplusprop2.conf
jdk/test/sun/security/krb5/edu.mit.Kerberos
jdk/test/sun/security/krb5/krb5-capaths.conf
jdk/test/sun/security/krb5/krb5.conf
--- a/jdk/test/sun/security/krb5/ConfPlusProp.java	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6857795
- * @bug 6858589
- * @bug 6972005
- * @compile -XDignore.symbol.file ConfPlusProp.java
- * @run main/othervm ConfPlusProp
- * @summary krb5.conf ignored if system properties on realm and kdc are provided
- */
-
-import sun.security.krb5.Config;
-
-public class ConfPlusProp {
-    Config config;
-    public static void main(String[] args) throws Exception {
-        new ConfPlusProp().run();
-    }
-
-    void refresh() throws Exception {
-        Config.refresh();
-        config = Config.getInstance();
-    }
-
-    void checkDefaultRealm(String r) throws Exception {
-        try {
-            if (!config.getDefaultRealm().equals(r)) {
-                throw new AssertionError("Default realm error");
-            }
-        } catch (Exception e) {
-            if (r != null) throw e;
-        }
-    }
-
-    void check(String r, String k) throws Exception {
-        try {
-            if (!config.getKDCList(r).equals(k)) {
-                throw new AssertionError(r + " kdc not " + k);
-            }
-        } catch (Exception e) {
-            if (k != null) throw e;
-        }
-    }
-
-    void run() throws Exception {
-
-        // No prop, only conf
-
-        // Point to a file with existing default_realm
-        System.setProperty("java.security.krb5.conf",
-                System.getProperty("test.src", ".") +"/confplusprop.conf");
-        refresh();
-
-        checkDefaultRealm("R1");
-        check("R1", "k1");
-        check("R2", "old");
-        check("R3", null);
-        if (!config.get("libdefaults", "forwardable").equals("well")) {
-            throw new Exception("Extra config error");
-        }
-
-        // Point to a file with no libdefaults
-        System.setProperty("java.security.krb5.conf",
-                System.getProperty("test.src", ".") +"/confplusprop2.conf");
-        refresh();
-
-        checkDefaultRealm(null);
-        check("R1", "k12");
-        check("R2", "old");
-        check("R3", null);
-
-        int version = System.getProperty("java.version").charAt(2) - '0';
-        System.out.println("JDK version is " + version);
-
-        // Zero-config is supported since 1.7
-        if (version >= 7) {
-            // Point to a non-existing file
-            System.setProperty("java.security.krb5.conf", "i-am-not-a file");
-            refresh();
-
-            // Default realm might come from DNS
-            //checkDefaultRealm(null);
-            check("R1", null);
-            check("R2", null);
-            check("R3", null);
-            if (config.get("libdefaults", "forwardable") != null) {
-                throw new Exception("Extra config error");
-            }
-        }
-
-        // Add prop
-        System.setProperty("java.security.krb5.realm", "R2");
-        System.setProperty("java.security.krb5.kdc", "k2");
-
-        // Point to a file with existing default_realm
-        System.setProperty("java.security.krb5.conf",
-                System.getProperty("test.src", ".") +"/confplusprop.conf");
-        refresh();
-
-        checkDefaultRealm("R2");
-        check("R1", "k1");
-        check("R2", "k2");
-        check("R3", "k2");
-        if (!config.get("libdefaults", "forwardable").equals("well")) {
-            throw new Exception("Extra config error");
-        }
-
-        // Point to a file with no libdefaults
-        System.setProperty("java.security.krb5.conf",
-                System.getProperty("test.src", ".") +"/confplusprop2.conf");
-        refresh();
-
-        checkDefaultRealm("R2");
-        check("R1", "k12");
-        check("R2", "k2");
-        check("R3", "k2");
-
-        // Point to a non-existing file
-        System.setProperty("java.security.krb5.conf", "i-am-not-a file");
-        refresh();
-
-        checkDefaultRealm("R2");
-        check("R1", "k2");
-        check("R2", "k2");
-        check("R3", "k2");
-        if (config.get("libdefaults", "forwardable") != null) {
-            throw new Exception("Extra config error");
-        }
-    }
-}
--- a/jdk/test/sun/security/krb5/ConfigWithQuotations.java	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6714845
- * @run main/othervm ConfigWithQuotations
- * @summary Quotes in Kerberos configuration file are included in the values
- */
-
-import sun.security.krb5.Config;
-
-public class ConfigWithQuotations {
-    public static void main(String[] args) throws Exception {
-        // This config file is generated using Kerberos.app on a Mac
-        System.setProperty("java.security.krb5.conf",
-                System.getProperty("test.src", ".") +"/edu.mit.Kerberos");
-        Config config = Config.getInstance();
-
-        System.out.println(config);
-
-        if (!config.getDefaultRealm().equals("MAC.LOCAL")) {
-            throw new Exception("Realm error");
-        }
-        if (!config.getKDCList("MAC.LOCAL").equals("kdc.mac.local:88")) {
-            throw new Exception("KDC error");
-        }
-    }
-}
--- a/jdk/test/sun/security/krb5/DnsFallback.java	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6673164
- * @bug 6552334
- * @run main/othervm DnsFallback
- * @summary fix dns_fallback parse error, and use dns by default
- */
-
-import java.io.*;
-import java.lang.reflect.Method;
-import sun.security.krb5.Config;
-
-public class DnsFallback {
-
-    static Method useDNS_Realm;
-
-    public static void main(String[] args) throws Exception {
-
-        useDNS_Realm = Config.class.getDeclaredMethod("useDNS_Realm");
-        useDNS_Realm.setAccessible(true);
-
-
-        // for 6673164
-        check("true", "true", true);
-        check("false", "true", false);
-        check("true", "false", true);
-        check("false", "false", false);
-        check("true", null, true);
-        check("false", null, false);
-        check(null, "true", true);
-        check(null, "false", false);
-
-        // for 6552334
-        check(null, null, true);
-    }
-
-    static void check(String realm, String fallback, boolean output)
-            throws Exception {
-
-        try (PrintStream ps =
-                new PrintStream(new FileOutputStream("dnsfallback.conf"))) {
-            ps.println("[libdefaults]\n");
-            if (realm != null) {
-                ps.println("dns_lookup_realm=" + realm);
-            }
-            if (fallback != null) {
-                ps.println("dns_fallback=" + fallback);
-            }
-        }
-
-        System.setProperty("java.security.krb5.conf", "dnsfallback.conf");
-        Config.refresh();
-        System.out.println("Testing " + realm + ", " + fallback + ", " + output);
-
-        if (!useDNS_Realm.invoke(Config.getInstance()).equals(output)) {
-            throw new Exception("Fail");
-        }
-    }
-}
-
--- a/jdk/test/sun/security/krb5/ParseCAPaths.java	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6789935 8012615
- * @run main/othervm ParseCAPaths
- * @summary cross-realm capath search error
- */
-
-import java.util.Arrays;
-import sun.security.krb5.Realm;
-
-public class ParseCAPaths {
-    static Exception failed = null;
-    public static void main(String[] args) throws Exception {
-        System.setProperty("java.security.krb5.conf",
-                System.getProperty("test.src", ".") +"/krb5-capaths.conf");
-
-        // MIT
-        check("ANL.GOV", "TEST.ANL.GOV", "ANL.GOV");
-        check("ANL.GOV", "ES.NET", "ANL.GOV");
-        check("ANL.GOV", "PNL.GOV", "ANL.GOV", "ES.NET");
-        check("ANL.GOV", "NERSC.GOV", "ANL.GOV", "ES.NET");
-        check("NERSC.GOV", "TEST.ANL.GOV", "NERSC.GOV", "ES.NET", "ANL.GOV");
-
-        // RedHat
-        // 3.6.2.1. Configuring a Shared Hierarchy of Names
-        check("AA.EXAMPLE.COM", "BB.EXAMPLE.COM",
-                "AA.EXAMPLE.COM", "EXAMPLE.COM");
-        check("SITE1.SALES.EXAMPLE.COM", "EVERYWHERE.EXAMPLE.COM",
-                "SITE1.SALES.EXAMPLE.COM", "SALES.EXAMPLE.COM",
-                "EXAMPLE.COM");
-        check("DEVEL.EXAMPLE.COM", "PROD.EXAMPLE.ORG",
-                "DEVEL.EXAMPLE.COM", "EXAMPLE.COM", "COM",
-                "ORG", "EXAMPLE.ORG");
-        // 3.6.2.2. Configuring Paths in krb5.conf
-        check("A.EXAMPLE.COM", "B.EXAMPLE.COM", "A.EXAMPLE.COM");
-        check("A.EXAMPLE.COM", "C.EXAMPLE.COM",
-                "A.EXAMPLE.COM", "B.EXAMPLE.COM");
-        check("A.EXAMPLE.COM", "D.EXAMPLE.COM",
-                "A.EXAMPLE.COM", "B.EXAMPLE.COM", "C.EXAMPLE.COM");
-
-        // The original JDK example
-        check("TIVOLI.COM", "IBM.COM", "TIVOLI.COM", "LDAPCENTRAL.NET",
-            "IBM_LDAPCENTRAL.COM", "MOONLITE.ORG");
-
-        // Hierachical
-        check("N1.N.COM", "N2.N.COM", "N1.N.COM", "N.COM");
-        check("N1.N.COM", "N2.N3.COM", "N1.N.COM", "N.COM",
-                "COM", "N3.COM");
-        check("N1.COM", "N2.COM", "N1.COM", "COM");
-        check("N1", "N2", "N1");
-        check("N1.COM", "N2.ORG", "N1.COM", "COM", "ORG");
-        check("N1.N.COM", "N.COM", "N1.N.COM");
-        check("X.N1.N.COM", "N.COM", "X.N1.N.COM", "N1.N.COM");
-        check("N.COM", "N1.N.COM", "N.COM");
-        check("N.COM", "X.N1.N.COM", "N.COM", "N1.N.COM");
-        check("A.B.C", "D.E.F", "A.B.C", "B.C", "C", "F", "E.F");
-
-        // Full path
-        check("A1.COM", "A2.COM", "A1.COM");
-        check("A1.COM", "A3.COM", "A1.COM", "A2.COM");
-        check("A1.COM", "A4.COM", "A1.COM", "A2.COM", "A3.COM");
-
-        // Shortest path
-        check("B1.COM", "B2.COM", "B1.COM");
-        check("B1.COM", "B3.COM", "B1.COM", "B2.COM");
-        check("B1.COM", "B4.COM", "B1.COM", "B2.COM", "B3.COM");
-
-        // Missing is "."
-        check("C1.COM", "C2.COM", "C1.COM", "COM");
-        check("C1.COM", "C3.COM", "C1.COM", "C2.COM");
-
-        // cRealm = .
-        check("D1.COM", "D2.COM", "D1.COM");
-
-        // Bad cases
-        check("E1.COM", "E2.COM", "E1.COM");
-        check("E1.COM", "E3.COM", "E1.COM", "E4.COM");
-        check("G1.COM", "G3.COM", "G1.COM", "G2.COM");
-        check("I1.COM", "I4.COM", "I1.COM", "I5.COM");
-
-        // 7019384
-        check("A9.PRAGUE.XXX.CZ", "SERVIS.XXX.CZ",
-                "A9.PRAGUE.XXX.CZ", "PRAGUE.XXX.CZ", "ROOT.XXX.CZ");
-
-        if (failed != null) {
-            throw failed;
-        }
-    }
-
-    static void check(String from, String to, String... paths) {
-        try {
-            check2(from, to, paths);
-        } catch (Exception e) {
-            System.out.println("         " + e.getMessage());
-            failed = e;
-        }
-    }
-
-    static void check2(String from, String to, String... paths)
-            throws Exception {
-        System.out.println(from + " -> " + to);
-        System.out.println("    expected: " + Arrays.toString(paths));
-        String[] result = Realm.getRealmsList(from, to);
-        if (result == null || result.length == 0) {
-            throw new Exception("There is always a valid path.");
-        } else if(result.length != paths.length) {
-            throw new Exception("Length of path not correct");
-        } else {
-            for (int i=0; i<result.length; i++) {
-                if (!result[i].equals(paths[i])) {
-                    System.out.println("    result:   " + Arrays.toString(result));
-                    throw new Exception("Path not same");
-                }
-            }
-        }
-    }
-}
--- a/jdk/test/sun/security/krb5/ParseConfig.java	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6319046
- * @compile -XDignore.symbol.file ParseConfig.java
- * @run main/othervm ParseConfig
- * @summary Problem with parsing krb5.conf
- */
-
-import sun.security.krb5.Config;
-
-public class ParseConfig {
-    public static void main(String[] args) throws Exception {
-        System.setProperty("java.security.krb5.conf", System.getProperty("test.src", ".") +"/krb5.conf");
-        Config config = Config.getInstance();
-        config.listTable();
-
-        String sample = "kdc.example.com kdc2.example.com";
-        for ( int i = 0; i < 4; i++ ) {
-            String expected = config.getAll("realms", "EXAMPLE_" + i + ".COM", "kdc");
-            if (!sample.equals(expected)) {
-                throw new Exception("krb5.conf: unexpected kdc value \"" +
-                        expected + "\"");
-            }
-        }
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ConfPlusProp.java	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6857795
+ * @bug 6858589
+ * @bug 6972005
+ * @compile -XDignore.symbol.file ConfPlusProp.java
+ * @run main/othervm ConfPlusProp
+ * @summary krb5.conf ignored if system properties on realm and kdc are provided
+ */
+
+import sun.security.krb5.Config;
+
+public class ConfPlusProp {
+    Config config;
+    public static void main(String[] args) throws Exception {
+        new ConfPlusProp().run();
+    }
+
+    void refresh() throws Exception {
+        Config.refresh();
+        config = Config.getInstance();
+    }
+
+    void checkDefaultRealm(String r) throws Exception {
+        try {
+            if (!config.getDefaultRealm().equals(r)) {
+                throw new AssertionError("Default realm error");
+            }
+        } catch (Exception e) {
+            if (r != null) throw e;
+        }
+    }
+
+    void check(String r, String k) throws Exception {
+        try {
+            if (!config.getKDCList(r).equals(k)) {
+                throw new AssertionError(r + " kdc not " + k);
+            }
+        } catch (Exception e) {
+            if (k != null) throw e;
+        }
+    }
+
+    void run() throws Exception {
+
+        // No prop, only conf
+
+        // Point to a file with existing default_realm
+        System.setProperty("java.security.krb5.conf",
+                System.getProperty("test.src", ".") +"/confplusprop.conf");
+        refresh();
+
+        checkDefaultRealm("R1");
+        check("R1", "k1");
+        check("R2", "old");
+        check("R3", null);
+        if (!config.get("libdefaults", "forwardable").equals("well")) {
+            throw new Exception("Extra config error");
+        }
+
+        // Point to a file with no libdefaults
+        System.setProperty("java.security.krb5.conf",
+                System.getProperty("test.src", ".") +"/confplusprop2.conf");
+        refresh();
+
+        checkDefaultRealm(null);
+        check("R1", "k12");
+        check("R2", "old");
+        check("R3", null);
+
+        int version = System.getProperty("java.version").charAt(2) - '0';
+        System.out.println("JDK version is " + version);
+
+        // Zero-config is supported since 1.7
+        if (version >= 7) {
+            // Point to a non-existing file
+            System.setProperty("java.security.krb5.conf", "i-am-not-a file");
+            refresh();
+
+            // Default realm might come from DNS
+            //checkDefaultRealm(null);
+            check("R1", null);
+            check("R2", null);
+            check("R3", null);
+            if (config.get("libdefaults", "forwardable") != null) {
+                throw new Exception("Extra config error");
+            }
+        }
+
+        // Add prop
+        System.setProperty("java.security.krb5.realm", "R2");
+        System.setProperty("java.security.krb5.kdc", "k2");
+
+        // Point to a file with existing default_realm
+        System.setProperty("java.security.krb5.conf",
+                System.getProperty("test.src", ".") +"/confplusprop.conf");
+        refresh();
+
+        checkDefaultRealm("R2");
+        check("R1", "k1");
+        check("R2", "k2");
+        check("R3", "k2");
+        if (!config.get("libdefaults", "forwardable").equals("well")) {
+            throw new Exception("Extra config error");
+        }
+
+        // Point to a file with no libdefaults
+        System.setProperty("java.security.krb5.conf",
+                System.getProperty("test.src", ".") +"/confplusprop2.conf");
+        refresh();
+
+        checkDefaultRealm("R2");
+        check("R1", "k12");
+        check("R2", "k2");
+        check("R3", "k2");
+
+        // Point to a non-existing file
+        System.setProperty("java.security.krb5.conf", "i-am-not-a file");
+        refresh();
+
+        checkDefaultRealm("R2");
+        check("R1", "k2");
+        check("R2", "k2");
+        check("R3", "k2");
+        if (config.get("libdefaults", "forwardable") != null) {
+            throw new Exception("Extra config error");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ConfigWithQuotations.java	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6714845
+ * @run main/othervm ConfigWithQuotations
+ * @summary Quotes in Kerberos configuration file are included in the values
+ */
+
+import sun.security.krb5.Config;
+
+public class ConfigWithQuotations {
+    public static void main(String[] args) throws Exception {
+        // This config file is generated using Kerberos.app on a Mac
+        System.setProperty("java.security.krb5.conf",
+                System.getProperty("test.src", ".") +"/edu.mit.Kerberos");
+        Config config = Config.getInstance();
+
+        System.out.println(config);
+
+        if (!config.getDefaultRealm().equals("MAC.LOCAL")) {
+            throw new Exception("Realm error");
+        }
+        if (!config.getKDCList("MAC.LOCAL").equals("kdc.mac.local:88")) {
+            throw new Exception("KDC error");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/DnsFallback.java	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6673164
+ * @bug 6552334
+ * @run main/othervm DnsFallback
+ * @summary fix dns_fallback parse error, and use dns by default
+ */
+
+import java.io.*;
+import java.lang.reflect.Method;
+import sun.security.krb5.Config;
+
+public class DnsFallback {
+
+    static Method useDNS_Realm;
+
+    public static void main(String[] args) throws Exception {
+
+        useDNS_Realm = Config.class.getDeclaredMethod("useDNS_Realm");
+        useDNS_Realm.setAccessible(true);
+
+
+        // for 6673164
+        check("true", "true", true);
+        check("false", "true", false);
+        check("true", "false", true);
+        check("false", "false", false);
+        check("true", null, true);
+        check("false", null, false);
+        check(null, "true", true);
+        check(null, "false", false);
+
+        // for 6552334
+        check(null, null, true);
+    }
+
+    static void check(String realm, String fallback, boolean output)
+            throws Exception {
+
+        try (PrintStream ps =
+                new PrintStream(new FileOutputStream("dnsfallback.conf"))) {
+            ps.println("[libdefaults]\n");
+            if (realm != null) {
+                ps.println("dns_lookup_realm=" + realm);
+            }
+            if (fallback != null) {
+                ps.println("dns_fallback=" + fallback);
+            }
+        }
+
+        System.setProperty("java.security.krb5.conf", "dnsfallback.conf");
+        Config.refresh();
+        System.out.println("Testing " + realm + ", " + fallback + ", " + output);
+
+        if (!useDNS_Realm.invoke(Config.getInstance()).equals(output)) {
+            throw new Exception("Fail");
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ParseCAPaths.java	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6789935 8012615
+ * @run main/othervm ParseCAPaths
+ * @summary cross-realm capath search error
+ */
+
+import java.util.Arrays;
+import sun.security.krb5.Realm;
+
+public class ParseCAPaths {
+    static Exception failed = null;
+    public static void main(String[] args) throws Exception {
+        System.setProperty("java.security.krb5.conf",
+                System.getProperty("test.src", ".") +"/krb5-capaths.conf");
+
+        // MIT
+        check("ANL.GOV", "TEST.ANL.GOV", "ANL.GOV");
+        check("ANL.GOV", "ES.NET", "ANL.GOV");
+        check("ANL.GOV", "PNL.GOV", "ANL.GOV", "ES.NET");
+        check("ANL.GOV", "NERSC.GOV", "ANL.GOV", "ES.NET");
+        check("NERSC.GOV", "TEST.ANL.GOV", "NERSC.GOV", "ES.NET", "ANL.GOV");
+
+        // RedHat
+        // 3.6.2.1. Configuring a Shared Hierarchy of Names
+        check("AA.EXAMPLE.COM", "BB.EXAMPLE.COM",
+                "AA.EXAMPLE.COM", "EXAMPLE.COM");
+        check("SITE1.SALES.EXAMPLE.COM", "EVERYWHERE.EXAMPLE.COM",
+                "SITE1.SALES.EXAMPLE.COM", "SALES.EXAMPLE.COM",
+                "EXAMPLE.COM");
+        check("DEVEL.EXAMPLE.COM", "PROD.EXAMPLE.ORG",
+                "DEVEL.EXAMPLE.COM", "EXAMPLE.COM", "COM",
+                "ORG", "EXAMPLE.ORG");
+        // 3.6.2.2. Configuring Paths in krb5.conf
+        check("A.EXAMPLE.COM", "B.EXAMPLE.COM", "A.EXAMPLE.COM");
+        check("A.EXAMPLE.COM", "C.EXAMPLE.COM",
+                "A.EXAMPLE.COM", "B.EXAMPLE.COM");
+        check("A.EXAMPLE.COM", "D.EXAMPLE.COM",
+                "A.EXAMPLE.COM", "B.EXAMPLE.COM", "C.EXAMPLE.COM");
+
+        // The original JDK example
+        check("TIVOLI.COM", "IBM.COM", "TIVOLI.COM", "LDAPCENTRAL.NET",
+            "IBM_LDAPCENTRAL.COM", "MOONLITE.ORG");
+
+        // Hierachical
+        check("N1.N.COM", "N2.N.COM", "N1.N.COM", "N.COM");
+        check("N1.N.COM", "N2.N3.COM", "N1.N.COM", "N.COM",
+                "COM", "N3.COM");
+        check("N1.COM", "N2.COM", "N1.COM", "COM");
+        check("N1", "N2", "N1");
+        check("N1.COM", "N2.ORG", "N1.COM", "COM", "ORG");
+        check("N1.N.COM", "N.COM", "N1.N.COM");
+        check("X.N1.N.COM", "N.COM", "X.N1.N.COM", "N1.N.COM");
+        check("N.COM", "N1.N.COM", "N.COM");
+        check("N.COM", "X.N1.N.COM", "N.COM", "N1.N.COM");
+        check("A.B.C", "D.E.F", "A.B.C", "B.C", "C", "F", "E.F");
+
+        // Full path
+        check("A1.COM", "A2.COM", "A1.COM");
+        check("A1.COM", "A3.COM", "A1.COM", "A2.COM");
+        check("A1.COM", "A4.COM", "A1.COM", "A2.COM", "A3.COM");
+
+        // Shortest path
+        check("B1.COM", "B2.COM", "B1.COM");
+        check("B1.COM", "B3.COM", "B1.COM", "B2.COM");
+        check("B1.COM", "B4.COM", "B1.COM", "B2.COM", "B3.COM");
+
+        // Missing is "."
+        check("C1.COM", "C2.COM", "C1.COM", "COM");
+        check("C1.COM", "C3.COM", "C1.COM", "C2.COM");
+
+        // cRealm = .
+        check("D1.COM", "D2.COM", "D1.COM");
+
+        // Bad cases
+        check("E1.COM", "E2.COM", "E1.COM");
+        check("E1.COM", "E3.COM", "E1.COM", "E4.COM");
+        check("G1.COM", "G3.COM", "G1.COM", "G2.COM");
+        check("I1.COM", "I4.COM", "I1.COM", "I5.COM");
+
+        // 7019384
+        check("A9.PRAGUE.XXX.CZ", "SERVIS.XXX.CZ",
+                "A9.PRAGUE.XXX.CZ", "PRAGUE.XXX.CZ", "ROOT.XXX.CZ");
+
+        if (failed != null) {
+            throw failed;
+        }
+    }
+
+    static void check(String from, String to, String... paths) {
+        try {
+            check2(from, to, paths);
+        } catch (Exception e) {
+            System.out.println("         " + e.getMessage());
+            failed = e;
+        }
+    }
+
+    static void check2(String from, String to, String... paths)
+            throws Exception {
+        System.out.println(from + " -> " + to);
+        System.out.println("    expected: " + Arrays.toString(paths));
+        String[] result = Realm.getRealmsList(from, to);
+        if (result == null || result.length == 0) {
+            throw new Exception("There is always a valid path.");
+        } else if(result.length != paths.length) {
+            throw new Exception("Length of path not correct");
+        } else {
+            for (int i=0; i<result.length; i++) {
+                if (!result[i].equals(paths[i])) {
+                    System.out.println("    result:   " + Arrays.toString(result));
+                    throw new Exception("Path not same");
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ParseConfig.java	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6319046
+ * @compile -XDignore.symbol.file ParseConfig.java
+ * @run main/othervm ParseConfig
+ * @summary Problem with parsing krb5.conf
+ */
+
+import sun.security.krb5.Config;
+
+public class ParseConfig {
+    public static void main(String[] args) throws Exception {
+        System.setProperty("java.security.krb5.conf", System.getProperty("test.src", ".") +"/krb5.conf");
+        Config config = Config.getInstance();
+        config.listTable();
+
+        String sample = "kdc.example.com kdc2.example.com";
+        for ( int i = 0; i < 4; i++ ) {
+            String expected = config.getAll("realms", "EXAMPLE_" + i + ".COM", "kdc");
+            if (!sample.equals(expected)) {
+                throw new Exception("krb5.conf: unexpected kdc value \"" +
+                        expected + "\"");
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/confplusprop.conf	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,12 @@
+[libdefaults]
+default_realm = R1
+forwardable = well
+dns_lookup_realm = false
+
+[realms]
+R1 = {
+   kdc = k1
+}
+R2 = {
+   kdc = old
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/confplusprop2.conf	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,10 @@
+[libdefaults]
+dns_lookup_realm = false
+
+[realms]
+R1 = {
+   kdc = k12
+}
+R2 = {
+   kdc = old
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/edu.mit.Kerberos	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,15 @@
+[domain_realm]
+
+[libdefaults]
+	default_realm = "MAC.LOCAL"
+	dns_fallback = "no"
+
+[logging]
+	admin_server = "FILE:/var/log/krb5kdc/kadmin.log"
+	kdc = "FILE:/var/log/krb5kdc/kdc.log"
+
+[realms]
+	MAC.LOCAL = {
+		kdc = "kdc.mac.local:88"
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/krb5-capaths.conf	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,102 @@
+[capaths]
+
+# http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/capaths.html
+
+ANL.GOV = {
+    TEST.ANL.GOV = .
+    PNL.GOV = ES.NET
+    NERSC.GOV = ES.NET
+    ES.NET = .
+}
+TEST.ANL.GOV = {
+    ANL.GOV = .
+}
+PNL.GOV = {
+    ANL.GOV = ES.NET
+}
+#NERSC.GOV = {
+#    ANL.GOV = ES.NET
+#}
+ES.NET = {
+    ANL.GOV = .
+}
+NERSC.GOV = {
+    ANL.GOV = ES.NET
+    TEST.ANL.GOV = ES.NET
+    TEST.ANL.GOV = ANL.GOV
+    PNL.GOV = ES.NET
+    ES.NET = .
+}
+
+# The original JDK example
+
+TIVOLI.COM = {
+    IBM.COM = IBM_LDAPCENTRAL.COM MOONLITE.ORG
+    IBM_LDAPCENTRAL.COM = LDAPCENTRAL.NET
+    LDAPCENTRAL.NET = .
+}
+
+# https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/Setting_Up_Cross_Realm_Authentication.html
+
+A.EXAMPLE.COM = {
+    B.EXAMPLE.COM = .
+    C.EXAMPLE.COM = B.EXAMPLE.COM
+    D.EXAMPLE.COM = B.EXAMPLE.COM
+    D.EXAMPLE.COM = C.EXAMPLE.COM
+}
+
+# Full path
+
+A1.COM = {
+    A2.COM = .
+    A3.COM = A2.COM
+    A4.COM = A2.COM
+    A4.COM = A3.COM
+}
+
+# Shortest path
+
+B1.COM = {
+    B2.COM = .
+    B3.COM = B2.COM
+    B4.COM = B3.COM
+}
+
+# If no sRealm key, fallback to hierarchy
+
+C1.COM = {
+    C3.COM = C2.COM
+}
+
+# cRealm is "."
+
+D1.COM = {
+    D2.COM=D1.COM
+}
+
+# Bad cases
+
+E1.COM = {
+    E2.COM = E2.COM
+    E3.COM = E4.COM
+    E3.COM = .
+}
+
+G1.COM = {
+    G2.COM = G3.COM
+    G3.COM = G2.COM
+}
+
+I1.COM = {
+    I2.COM = I3.COM
+    I3.COM = I2.COM
+    I4.COM = I5.COM
+}
+
+# 7019384
+
+A9.PRAGUE.XXX.CZ = {
+    PRAGUE.XXX.CZ = .
+    ROOT.XXX.CZ = PRAGUE.XXX.CZ
+    SERVIS.XXX.CZ = ROOT.XXX.CZ
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/krb5.conf	Wed Feb 12 19:20:43 2014 +0800
@@ -0,0 +1,29 @@
+[realms]
+   EXAMPLE_0.COM = {
+      kdc = kdc.example.com
+      kdc = kdc2.example.com
+   }
+
+   EXAMPLE_1.COM =
+   {
+      kdc = kdc.example.com
+      kdc = kdc2.example.com
+   }
+
+   EXAMPLE_2.COM = {
+	kdc = kdc.example.com
+	kdc = kdc2.example.com
+	inner = {
+		aaa = nnn
+	}
+   }
+
+   EXAMPLE_3.COM = {
+	kdc = kdc.example.com
+	kdc = kdc2.example.com
+	inner =
+	{
+		aaa = nnn
+	}
+   }
+
--- a/jdk/test/sun/security/krb5/confplusprop.conf	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-[libdefaults]
-default_realm = R1
-forwardable = well
-dns_lookup_realm = false
-
-[realms]
-R1 = {
-   kdc = k1
-}
-R2 = {
-   kdc = old
-}
--- a/jdk/test/sun/security/krb5/confplusprop2.conf	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-[libdefaults]
-dns_lookup_realm = false
-
-[realms]
-R1 = {
-   kdc = k12
-}
-R2 = {
-   kdc = old
-}
--- a/jdk/test/sun/security/krb5/edu.mit.Kerberos	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-[domain_realm]
-
-[libdefaults]
-	default_realm = "MAC.LOCAL"
-	dns_fallback = "no"
-
-[logging]
-	admin_server = "FILE:/var/log/krb5kdc/kadmin.log"
-	kdc = "FILE:/var/log/krb5kdc/kdc.log"
-
-[realms]
-	MAC.LOCAL = {
-		kdc = "kdc.mac.local:88"
-	}
-
--- a/jdk/test/sun/security/krb5/krb5-capaths.conf	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-[capaths]
-
-# http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/capaths.html
-
-ANL.GOV = {
-    TEST.ANL.GOV = .
-    PNL.GOV = ES.NET
-    NERSC.GOV = ES.NET
-    ES.NET = .
-}
-TEST.ANL.GOV = {
-    ANL.GOV = .
-}
-PNL.GOV = {
-    ANL.GOV = ES.NET
-}
-#NERSC.GOV = {
-#    ANL.GOV = ES.NET
-#}
-ES.NET = {
-    ANL.GOV = .
-}
-NERSC.GOV = {
-    ANL.GOV = ES.NET
-    TEST.ANL.GOV = ES.NET
-    TEST.ANL.GOV = ANL.GOV
-    PNL.GOV = ES.NET
-    ES.NET = .
-}
-
-# The original JDK example
-
-TIVOLI.COM = {
-    IBM.COM = IBM_LDAPCENTRAL.COM MOONLITE.ORG
-    IBM_LDAPCENTRAL.COM = LDAPCENTRAL.NET
-    LDAPCENTRAL.NET = .
-}
-
-# https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/Setting_Up_Cross_Realm_Authentication.html
-
-A.EXAMPLE.COM = {
-    B.EXAMPLE.COM = .
-    C.EXAMPLE.COM = B.EXAMPLE.COM
-    D.EXAMPLE.COM = B.EXAMPLE.COM
-    D.EXAMPLE.COM = C.EXAMPLE.COM
-}
-
-# Full path
-
-A1.COM = {
-    A2.COM = .
-    A3.COM = A2.COM
-    A4.COM = A2.COM
-    A4.COM = A3.COM
-}
-
-# Shortest path
-
-B1.COM = {
-    B2.COM = .
-    B3.COM = B2.COM
-    B4.COM = B3.COM
-}
-
-# If no sRealm key, fallback to hierarchy
-
-C1.COM = {
-    C3.COM = C2.COM
-}
-
-# cRealm is "."
-
-D1.COM = {
-    D2.COM=D1.COM
-}
-
-# Bad cases
-
-E1.COM = {
-    E2.COM = E2.COM
-    E3.COM = E4.COM
-    E3.COM = .
-}
-
-G1.COM = {
-    G2.COM = G3.COM
-    G3.COM = G2.COM
-}
-
-I1.COM = {
-    I2.COM = I3.COM
-    I3.COM = I2.COM
-    I4.COM = I5.COM
-}
-
-# 7019384
-
-A9.PRAGUE.XXX.CZ = {
-    PRAGUE.XXX.CZ = .
-    ROOT.XXX.CZ = PRAGUE.XXX.CZ
-    SERVIS.XXX.CZ = ROOT.XXX.CZ
-}
--- a/jdk/test/sun/security/krb5/krb5.conf	Wed Feb 12 11:02:47 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-[realms]
-   EXAMPLE_0.COM = {
-      kdc = kdc.example.com
-      kdc = kdc2.example.com
-   }
-
-   EXAMPLE_1.COM =
-   {
-      kdc = kdc.example.com
-      kdc = kdc2.example.com
-   }
-
-   EXAMPLE_2.COM = {
-	kdc = kdc.example.com
-	kdc = kdc2.example.com
-	inner = {
-		aaa = nnn
-	}
-   }
-
-   EXAMPLE_3.COM = {
-	kdc = kdc.example.com
-	kdc = kdc2.example.com
-	inner =
-	{
-		aaa = nnn
-	}
-   }
-