+ private static String kerberosDomainFromDns() {
+ String kerberosDomain;
+ try (DnsBrowser dnsBrowser = new DnsBrowser()) {
+ InetAddress localhost = InetAddress.getLocalHost();
+ String hostname = localhost.getHostName();
+ String dnsZone = hostname.substring(hostname.indexOf('.') + 1);
+ kerberosDomain = dnsBrowser.getRecord("_kerberos." + dnsZone, "TXT");
+ return kerberosDomain;
+ } catch (Exception e) {
+ throw new UserDirectoryException("Cannot determine Kerberos domain from DNS", e);
+ }
+
+ }
+
+ // private static Map<String, List<String>> splitQuery(String query) throws
+ // UnsupportedEncodingException {
+ // final Map<String, List<String>> query_pairs = new LinkedHashMap<String,
+ // List<String>>();
+ // if (query == null)
+ // return query_pairs;
+ // final String[] pairs = query.split("&");
+ // for (String pair : pairs) {
+ // final int idx = pair.indexOf("=");
+ // final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx),
+ // "UTF-8") : pair;
+ // if (!query_pairs.containsKey(key)) {
+ // query_pairs.put(key, new LinkedList<String>());
+ // }
+ // final String value = idx > 0 && pair.length() > idx + 1
+ // ? URLDecoder.decode(pair.substring(idx + 1), "UTF-8") : null;
+ // query_pairs.get(key).add(value);
+ // }
+ // return query_pairs;
+ // }
+