}
// Test each registry has different has different user stores
public void testUserStores() throws RegistryException {
RealmConfiguration realmConfig = ctx.getRealmService().getBootstrapRealmConfiguration();
// first we will fill the user store for tenant 0
UserRegistry registry1 =
embeddedRegistryService.getUserRegistry(realmConfig.getAdminUserName(), 0);
Resource r = registry1.newResource();
registry1.put("/test2", r);
UserRealm userRealm1 = registry1.getUserRealm();
UserStoreManager userStoreManager1;
try {
userStoreManager1 = userRealm1.getUserStoreManager();
} catch (UserStoreException e) {
throw new RegistryException("Error in retrieving UserStoreManager.");
}
AuthorizationManager authorizationManager1;
try {
authorizationManager1 = userRealm1.getAuthorizationManager();
} catch (UserStoreException e) {
throw new RegistryException("Error in retrieving AuthorizationManager.");
}
// adding some users
try {
userStoreManager1.addUser("user1t0", "password", null, null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user1t0.");
}
try {
userStoreManager1.addUser("user2t0", "password", null, null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user2t0.");
}
try {
userStoreManager1.addUser("user3t0", "password", null, null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user3t0.");
}
// adding more users we are going to add roles with
try {
userStoreManager1.addUser("user4t0", "password", null, null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user4t0.");
}
try {
userStoreManager1.addUser("user5t0", "password", null, null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user5t0.");
}
try {
userStoreManager1.addUser("user6t0", "password", null, null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user6t0.");
}
// adding some roles
try {
userStoreManager1.addRole("role1t0", null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding role role1t0.");
}
try {
userStoreManager1.addRole("role2t0", null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding role role2t0.");
}
try {
userStoreManager1.addRole("role3t0", null, null);
} catch (UserStoreException e) {
throw new RegistryException("Error in adding role role3t0.");
}
//
// // now assign authorizations to first set of users.
// try {
// authorizationManager1.authorizeUser("user1t0", "/test2", ActionConstants.PUT);
// } catch (UserStoreException e) {
// throw new RegistryException("Error in authorizing user1t0.");
// }
// try {
// authorizationManager1.authorizeUser("user2t0", "/test2", ActionConstants.DELETE);
// } catch (UserStoreException e) {
// throw new RegistryException("Error in authorizing user2t0.");
// }
// try {
// authorizationManager1.authorizeUser("user2t0", "/test2", "authorize");
// } catch (UserStoreException e) {
// throw new RegistryException("Error in authorizing user3t0.");
// }
// then assign roles to the second set of users.
try {
userStoreManager1.updateRoleListOfUser("user4t0", null, new String[]{"role1t0"});
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user4t0 to role1t0 role.");
}
try {
userStoreManager1.updateRoleListOfUser("user5t0", null, new String[]{"role2t0"});
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user5t0 to role2t0 role.");
}
try {
userStoreManager1.updateRoleListOfUser("user6t0", null, new String[]{"role3t0"});
} catch (UserStoreException e) {
throw new RegistryException("Error in adding user user6t0 to role3t0 role.");
}
// now giving authorizations to the role.
try {
authorizationManager1.authorizeRole("role1t0", "/test2", ActionConstants.PUT);
} catch (UserStoreException e) {
throw new RegistryException("Error in authorizing role1t0.");
}
try {
authorizationManager1.authorizeRole("role2t0", "/test2", ActionConstants.DELETE);
} catch (UserStoreException e) {
throw new RegistryException("Error in authorizing role2t0.");
}
try {
authorizationManager1.authorizeRole("role3t0", "/test2", "authorize");
} catch (UserStoreException e) {
throw new RegistryException("Error in authorizing role3t0.");
}
// secondly we will check the user store from tenant 1 and verify no overlaps with tenant 0
UserRegistry registry2 =
embeddedRegistryService.getUserRegistry(realmConfig.getAdminUserName(), 1);
UserRealm userRealm2 = registry2.getUserRealm();
UserStoreManager userStoreManager2;
try {
userStoreManager2 = userRealm2.getUserStoreManager();