X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdirectory%2Fldap%2FIpaUtils.java;h=b14c090abbf65dd4de8d5af0a92e2214af090d1e;hb=ac54bae7278d8653a0ae85749a9da8e3886991c7;hp=cf6ad93907cd1995546b1ece7ac01a0ebb4cfa40;hpb=e48bd76a00f8253bb19d0881b4af49af713ed001;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java index cf6ad9390..b14c090ab 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java @@ -79,9 +79,18 @@ public class IpaUtils { public static String kerberosDomainFromDns() { String kerberosDomain; try (DnsBrowser dnsBrowser = new DnsBrowser()) { + // TODO retrieve hostname from CMS config InetAddress localhost = InetAddress.getLocalHost(); String hostname = localhost.getHostName(); - String dnsZone = hostname.substring(hostname.indexOf('.') + 1); + int dotIndex = hostname.indexOf('.'); + if (dotIndex <= 0) { + hostname = localhost.getCanonicalHostName(); + dotIndex = hostname.indexOf('.'); + if (dotIndex <= 0) + throw new IllegalArgumentException( + "Cannot extract DNS zone from hostname " + hostname + " (" + localhost + ")"); + } + String dnsZone = hostname.substring(dotIndex + 1); kerberosDomain = dnsBrowser.getRecord("_kerberos." + dnsZone, "TXT"); return kerberosDomain; } catch (IOException e) {