Hello Yair Zaslavsky,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/32812
to review the following change.
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.
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120720
Change-Id: Id1066170758ecddd296b6f253c5bd386cea22008
Topic: AAA
Signed-off-by: Yair Zaslavsky <[email protected]>
---
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/12/32812/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 dae3df2..038074e 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/32812
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id1066170758ecddd296b6f253c5bd386cea22008
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Alon Bar-Lev <[email protected]>
Gerrit-Reviewer: Yair Zaslavsky <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches