Hi @divyatyagi, looking on code you have shared, I have few observations:
- It looks that you are using 2 different resource resolver, in general this shoud not be an issue, assuming you have approprite level of permissions for both.
// resource resolver #1
UserManager userManager = resourceResolverAddMember.adaptTo(UserManager.class);
// resource resolver #2
Session currentSession = resourceResolver.adaptTo(Session.class);
- You are using cugGroup.getMembers(); to list group memebrs. This is fine, however please keep in mind that without refershing session you can get inacurate results. You can remove below line and you will see that in logs you will get the same results returned by getMembers method.
log.info("Member added to group ::" + result);
// currentSession.save();
log.info("Current session is saved");
In my opinion the root cause of the issue is level of permissions of session you are using. It can be easily check. Please modify your code like below:
log.info("Member added to group ::" + result);
currentSession.save();
log.info("Current session is saved");
// refreshing session
currentSession.refresh(false);
//** To get members of group
Iterator<Authorizable> auth = cugGroup.getMembers();
while(auth.hasNext()) {
Authorizable authMember = auth.next();
log.info("Grp Member :: " + authMember.getID());
} If you will you see that changes are not saved - then the solution will be to use session that will allow you to modify/add new users to the group.