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 <alo...@redhat.com> Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- 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 <yzasl...@redhat.com> Gerrit-Reviewer: Alon Bar-Lev <alo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches