Hello Alon Bar-Lev,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/34526
to review the following change.
Change subject: tools: manage-domains: respect ConfigValues.SASL_QOP
......................................................................
tools: manage-domains: respect ConfigValues.SASL_QOP
in one of the ugliest piece of code I've ever seen.
the cli does not respect the configuration of the application.
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1157888
Change-Id: I4fad86b7b2a1437607acf9562ac898ac455c10dd
Signed-off-by: Alon Bar-Lev <[email protected]>
Signed-off-by: Yair Zaslavsky <[email protected]>
---
M
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/JndiAction.java
M
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/KerberosConfigCheck.java
M
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ConfigurationProvider.java
M
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
4 files changed, 18 insertions(+), 8 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/34526/1
diff --git
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/JndiAction.java
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/JndiAction.java
index 467d64c..6b2124b 100644
---
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/JndiAction.java
+++
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/JndiAction.java
@@ -34,15 +34,17 @@
private final StringBuffer userGuid;
private List<String> ldapServers;
private final String defaultLdapServerPort;
+ private final String saslQOP;
private final static Logger log = Logger.getLogger(JndiAction.class);
- public JndiAction(String userName, String domainName, StringBuffer
userGuid, LdapProviderType ldapProviderType, List<String> ldapServers, String
defaultLdapServerPort) {
+ public JndiAction(String userName, String domainName, StringBuffer
userGuid, LdapProviderType ldapProviderType, List<String> ldapServers, String
defaultLdapServerPort, String saslQOP) {
this.userName = userName;
this.domainName = domainName;
this.ldapProviderType = ldapProviderType;
this.userGuid = userGuid;
this.ldapServers = ldapServers;
this.defaultLdapServerPort = defaultLdapServerPort;
+ this.saslQOP = saslQOP;
}
@Override
@@ -51,7 +53,7 @@
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put("java.naming.ldap.attributes.binary", "objectGUID");
env.put(Context.SECURITY_AUTHENTICATION, "GSSAPI");
- env.put("javax.security.sasl.qop", "auth-conf");
+ env.put("javax.security.sasl.qop", saslQOP);
// Send an SRV record DNS query to retrieve all the LDAP servers in
the domain
LdapSRVLocator locator = new LdapSRVLocator();
diff --git
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/KerberosConfigCheck.java
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/KerberosConfigCheck.java
index 304f8dc..9513089 100644
---
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/KerberosConfigCheck.java
+++
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/kerberos/KerberosConfigCheck.java
@@ -23,6 +23,7 @@
public class KerberosConfigCheck {
private LoginContext lc;
private final List<String> ldapServers;
+ private final String saslQOP;
private String defaultLdapServerPort;
private final static Logger log =
Logger.getLogger(KerberosConfigCheck.class);
@@ -36,13 +37,14 @@
ldapProviderType;
}
- public KerberosConfigCheck(List<String> ldapServers, String
defaultLdapServerPort) {
+ public KerberosConfigCheck(List<String> ldapServers, String
defaultLdapServerPort, String saslQOP) {
this.ldapServers = ldapServers;
this.defaultLdapServerPort = defaultLdapServerPort;
+ this.saslQOP = saslQOP;
}
public KerberosConfigCheck() {
- this(null, null);
+ this(null, null, "auth-conf");
}
/**
@@ -129,7 +131,7 @@
authResult =
(AuthenticationResult) Subject.doAs(lc.getSubject(), new
JndiAction(username,
realm.toLowerCase(),
- userGuid, ldapProviderType, ldapServers,
defaultLdapServerPort));
+ userGuid, ldapProviderType, ldapServers,
defaultLdapServerPort, saslQOP));
} finally {
if (lc != null) {
diff --git
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ConfigurationProvider.java
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ConfigurationProvider.java
index 002d6f8..b4a066f 100644
---
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ConfigurationProvider.java
+++
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ConfigurationProvider.java
@@ -9,6 +9,7 @@
import static
org.ovirt.engine.core.common.config.ConfigValues.LDAPSecurityAuthentication;
import static org.ovirt.engine.core.common.config.ConfigValues.LDAPServerPort;
import static org.ovirt.engine.core.common.config.ConfigValues.LdapServers;
+import static org.ovirt.engine.core.common.config.ConfigValues.SASL_QOP;
import java.io.BufferedWriter;
import java.io.File;
@@ -34,7 +35,7 @@
String adUserId,
String ldapProviderTypes,
String engineConfigExecutable,
- String engineConfigProperties, String ldapServerPort, String
passwordChangeUrls) {
+ String engineConfigProperties, String ldapServerPort, String
passwordChangeUrls, String saslQOP) {
super();
configVals.put(AdUserName, adUserName);
configVals.put(AdUserPassword, adUserPassword);
@@ -45,6 +46,7 @@
configVals.put(LDAPProviderTypes, ldapProviderTypes);
configVals.put(LDAPServerPort, ldapServerPort);
configVals.put(ChangePasswordMsg, passwordChangeUrls);
+ configVals.put(SASL_QOP, saslQOP);
this.engineConfigExecutable = engineConfigExecutable;
this.engineConfigProperties = engineConfigProperties;
}
diff --git
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
index e4f4987..efcb486 100644
---
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
+++
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
@@ -201,6 +201,8 @@
if (changePasswordUrl == null) {
changePasswordUrl = "";
}
+ String saslQOP =
+ getConfigValue(engineConfigExecutable,
engineConfigProperties, ConfigValues.SASL_QOP);
configurationProvider =
new ConfigurationProvider(adUserName,
@@ -211,7 +213,7 @@
adUserId,
ldapProviderTypes,
utilityConfiguration.getEngineConfigExecutablePath(),
- engineConfigProperties, ldapPort,
changePasswordUrl);
+ engineConfigProperties, ldapPort,
changePasswordUrl, saslQOP);
} catch (Throwable e) {
throw new
ManageDomainsResult(ManageDomainsResultEnum.FAILED_READING_CURRENT_CONFIGURATION,
e.getMessage());
@@ -746,7 +748,7 @@
try {
log.info("Testing kerberos configuration for domain: " +
domain);
List<String> ldapServersPerDomain =
ldapServersPerDomainMap.get(domain);
- KerberosConfigCheck kerberosConfigCheck = new
KerberosConfigCheck(ldapServersPerDomain, ldapServerPort);
+ KerberosConfigCheck kerberosConfigCheck = new
KerberosConfigCheck(ldapServersPerDomain, ldapServerPort,
configurationProvider.getConfigValue(ConfigValues.SASL_QOP));
StringBuffer userGuid = new StringBuffer();
kerberosConfigCheck.checkInstallation(domain,
users.getValueForDomain(domain),
@@ -1115,6 +1117,8 @@
.append("=\n")
.append(ConfigValues.ChangePasswordMsg.name())
.append("=\n")
+ .append(ConfigValues.SASL_QOP.name())
+ .append("=\n")
.toString());
fw.flush();
} catch (IOException ex) {
--
To view, visit http://gerrit.ovirt.org/34526
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4fad86b7b2a1437607acf9562ac898ac455c10dd
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Yair Zaslavsky <[email protected]>
Gerrit-Reviewer: Alon Bar-Lev <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches