projects
/
lgpl
/
argeo-commons.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e48bd76
)
Make IPA auto-configuration more robust
author
Mathieu <mbaudier@argeo.org>
Sat, 3 Dec 2022 09:46:36 +0000
(10:46 +0100)
committer
Mathieu <mbaudier@argeo.org>
Sat, 3 Dec 2022 09:46:36 +0000
(10:46 +0100)
org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java
patch
|
blob
|
history
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 cf6ad93907cd1995546b1ece7ac01a0ebb4cfa40..b14c090abbf65dd4de8d5af0a92e2214af090d1e 100644
(file)
--- 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()) {
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();
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) {
kerberosDomain = dnsBrowser.getRecord("_kerberos." + dnsZone, "TXT");
return kerberosDomain;
} catch (IOException e) {