Yair Zaslavsky has uploaded a new change for review.

Change subject: aaa: Fix group population for legacy provider
......................................................................

aaa: Fix group population for legacy provider

Legacy provider did not populate groups for added users
in a correct way.

Change-Id: Id1066170758ecddd296b6f253c5bd386cea22008
Topic: AAA
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/KerberosLdapAuthz.java
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapBrokerCommandBase.java
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchByQueryParameters.java
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchUserByQueryCommand.java
4 files changed, 29 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/32728/1

diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/KerberosLdapAuthz.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/KerberosLdapAuthz.java
index 01a5758..6931c0d 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/KerberosLdapAuthz.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/KerberosLdapAuthz.java
@@ -93,6 +93,7 @@
                         null,
                         getDirectoryName(),
                         queryData,
+                        false,
                         false)
                 );
         List<LdapGroup> ldapGroups = (List<LdapGroup>) 
ldapResult.getReturnValue();
@@ -115,7 +116,9 @@
                         null,
                         getDirectoryName(),
                         queryData,
+                                (input.<Integer> 
get(Authz.InvokeKeys.QUERY_FLAGS, 0) & Authz.QueryFlags.RESOLVE_GROUPS) != 0,
                                 (input.<Integer> 
get(Authz.InvokeKeys.QUERY_FLAGS, 0) & 
Authz.QueryFlags.RESOLVE_GROUPS_RECURSIVE) != 0
+
                 )
         );
         List<LdapUser> ldapUsers = (List<LdapUser>) 
ldapResult.getReturnValue();
diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapBrokerCommandBase.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapBrokerCommandBase.java
index b203130..e0ef055 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapBrokerCommandBase.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapBrokerCommandBase.java
@@ -128,10 +128,13 @@
     protected abstract void executeQuery(DirectorySearcher directorySearcher);
 
     protected LdapUser populateUserData(LdapUser user, String domain) {
-        return populateUserData(user, domain, true);
+        return populateUserData(user, domain, true, true);
     }
 
-    protected LdapUser populateUserData(LdapUser user, String domain, boolean 
populateGroups) {
+    protected LdapUser populateUserData(LdapUser user,
+            String domain,
+            boolean populateGroups,
+            boolean populateGroupsRecursively) {
         if (user == null) {
             return null;
         }
@@ -147,7 +150,7 @@
             user.setUserName(user.getUserName() + "@" + 
user.getDomainControler());
         }
 
-        if (populateGroups) {
+        if (populateGroupsRecursively || populateGroups) {
             if (generator.getHasValues()) {
                 List<LdapQueryData> partialQueries = 
generator.getLdapQueriesData();
                 for (LdapQueryData currQueryData : partialQueries) {
@@ -155,7 +158,9 @@
                             getAuthenticationDomain(),
                             groupsDict,
                             getLoginName(),
-                            getPassword());
+                            getPassword(),
+                            populateGroupsRecursively
+                            );
                 }
             }
         }
@@ -167,7 +172,7 @@
                                  String domain,
                                  Map<String, LdapGroup> groupsDict,
                                  String loginName,
-                                 String password) {
+                                 String password, boolean 
populateGroupsRecursively) {
         try {
             GroupsDNQueryGenerator generator = new GroupsDNQueryGenerator();
             List<GroupSearchResult> searchResultCollection =
@@ -178,10 +183,10 @@
                 }
             }
             // If generator has results, it means there are parent groups
-            if (generator.getHasValues()) {
+            if (generator.getHasValues() && populateGroupsRecursively) {
                 List<LdapQueryData> partialQueries = 
generator.getLdapQueriesData();
                 for (LdapQueryData partialQuery : partialQueries) {
-                    populateGroup(partialQuery, domain, groupsDict, loginName, 
password);
+                    populateGroup(partialQuery, domain, groupsDict, loginName, 
password, populateGroupsRecursively);
                 }
             }
         } catch (RuntimeException e) {
diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchByQueryParameters.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchByQueryParameters.java
index ef29917..d4012b9 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchByQueryParameters.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchByQueryParameters.java
@@ -5,6 +5,7 @@
 public class LdapSearchByQueryParameters extends LdapBrokerBaseParameters {
     private LdapQueryData ldapQueryData;
     private boolean populateGroups;
+    private boolean populateGroupsRecursively;
 
     public LdapQueryData getLdapQueryData() {
         return ldapQueryData;
@@ -23,21 +24,28 @@
             String sessionId,
             String domain,
             LdapQueryData ldapQueryData) {
-        this(configuration, sessionId, domain, ldapQueryData, false);
+        this(configuration, sessionId, domain, ldapQueryData, false, false);
     }
 
-    public LdapSearchByQueryParameters(Properties configuration,
+    public LdapSearchByQueryParameters(
+            Properties configuration,
             String sessionId,
             String domain,
             LdapQueryData ldapQueryData,
-            boolean populateGroups) {
+            boolean populateGroups,
+            boolean populateGroupsRecursively) {
         super(configuration, sessionId, domain);
         setLdapQueryData(ldapQueryData);
         this.populateGroups = populateGroups;
+        this.populateGroupsRecursively = populateGroupsRecursively;
     }
 
     boolean isPopulateGroups() {
         return populateGroups;
     }
 
+    boolean isPopulateGroupsRecursively() {
+        return populateGroupsRecursively;
+    }
+
 }
diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchUserByQueryCommand.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchUserByQueryCommand.java
index 62dfe4c..6b0515d 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchUserByQueryCommand.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/LdapSearchUserByQueryCommand.java
@@ -7,6 +7,7 @@
 
 public class LdapSearchUserByQueryCommand extends 
LdapSearchGroupsByQueryCommand {
     private boolean populateGroups;
+    private boolean populateGroupsRecursively;
 
     protected LdapQueryData getLdapQueryData() {
         return ((LdapSearchByQueryParameters) 
getParameters()).getLdapQueryData();
@@ -15,6 +16,7 @@
     public LdapSearchUserByQueryCommand(LdapSearchByQueryParameters 
parameters) {
         super(parameters);
         populateGroups = parameters.isPopulateGroups();
+        populateGroupsRecursively = parameters.isPopulateGroupsRecursively();
     }
 
     @Override
@@ -26,7 +28,7 @@
         for (final LdapUser searchResult : usersList) {
             {
                 LdapUser user =
-                        populateUserData(searchResult, 
getLdapQueryData().getDomain(), populateGroups);
+                        populateUserData(searchResult, 
getLdapQueryData().getDomain(), populateGroups, populateGroupsRecursively);
                 userList.add(user);
             }
         }


-- 
To view, visit http://gerrit.ovirt.org/32728
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id1066170758ecddd296b6f253c5bd386cea22008
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to