@Override public void setAttribute(IdentityType identityType, Attribute<? extends Serializable> attribute) { throw createNotImplementedYetException(); }
private Group updateGroup(Group updatedGroup, Group storedGroup) { if (storedGroup != updatedGroup) { updateCommonProperties(updatedGroup, storedGroup); } getConfig().getGroups().put(storedGroup.getName(), storedGroup); flushGroups(); return storedGroup; }
@Override public GroupRole createMembership(IdentityType member, Group group, Role role) { GroupRole membership = new SimpleGroupRole(member, role, group); getConfig().getMemberships().add(membership); flushMemberships(); return membership; }
@Override public void add(IdentityType identityType) { Class<? extends IdentityType> identityTypeClass = identityType.getClass(); if (IDMUtil.isUserType(identityTypeClass)) { User storedUser = addUser((User) identityType); UserCreatedEvent event = new UserCreatedEvent(storedUser); // event.getContext().setValue(EVENT_CONTEXT_USER_ENTITY, storedUser); getContext().getEventBridge().raiseEvent(event); } else if (IDMUtil.isAgentType(identityTypeClass)) { Agent storedAgent = addAgent((Agent) identityType); AgentCreatedEvent event = new AgentCreatedEvent(storedAgent); // event.getContext().setValue(EVENT_CONTEXT_USER_ENTITY, storedUser); getContext().getEventBridge().raiseEvent(event); } else if (IDMUtil.isGroupType(identityTypeClass)) { Group storedGroup = addGroup((Group) identityType); GroupCreatedEvent event = new GroupCreatedEvent(storedGroup); // event.getContext().setValue(EVENT_CONTEXT_USER_ENTITY, storedGroup); getContext().getEventBridge().raiseEvent(event); } else if (IDMUtil.isRoleType(identityTypeClass)) { Role storedRole = addRole((Role) identityType); RoleCreatedEvent event = new RoleCreatedEvent(storedRole); // event.getContext().setValue(EVENT_CONTEXT_USER_ENTITY, storedRole); getContext().getEventBridge().raiseEvent(event); } else { throw new IdentityManagementException("Unsupported IdentityType [" + identityTypeClass.getName() + "]."); } }
entries = getConfig().getUsers().entrySet(); } else if (IDMUtil.isRoleType(identityTypeClass)) { entries = getConfig().getRoles().entrySet(); } else if (IDMUtil.isGroupType(identityTypeClass)) { entries = getConfig().getGroups().entrySet(); } else if (IDMUtil.isAgentType(identityTypeClass)) { entries = getConfig().getUsers().entrySet(); if (!isQueryParameterEquals(identityQuery.getParameters(), User.ID, user.getId())) { continue; if (!isQueryParameterEquals(identityQuery.getParameters(), User.EMAIL, user.getEmail())) { continue; if (!isQueryParameterEquals(identityQuery.getParameters(), User.FIRST_NAME, user.getFirstName())) { continue; if (!isQueryParameterEquals(identityQuery.getParameters(), User.LAST_NAME, user.getLastName())) { continue; if (!isQueryParameterEquals(identityQuery.getParameters(), Agent.ID, agent.getId())) { continue; if (!isQueryParameterEquals(identityQuery.getParameters(), Role.NAME, role.getName())) { continue; if (!isQueryParameterEquals(identityQuery.getParameters(), Group.NAME, group.getName())) { continue;
private Group addGroup(Group group) { SimpleGroup fileGroup = null; if (group.getParentGroup() != null) { fileGroup = new SimpleGroup(group.getName(), getGroup(group.getParentGroup().getName())); } else { fileGroup = new SimpleGroup(group.getName()); } updateCommonProperties(group, fileGroup); getConfig().getGroups().put(fileGroup.getName(), fileGroup); flushGroups(); return fileGroup; }
private User removeUser(User user) { getConfig().getUsers().remove(user.getId()); for (GroupRole membership : new ArrayList<GroupRole>(getConfig().getMemberships())) { IdentityType member = membership.getMember(); if (IDMUtil.isUserType(member.getClass())) { User userMember = (User) member; if (userMember.getId().equals(user.getId())) { getConfig().getMemberships().remove(membership); } } } flushUsers(); flushMemberships(); return user; }
@Override public <T extends CredentialStorage> T retrieveCurrentCredential(Agent agent, Class<T> storageClass) { Map<String, List<FileCredentialStorage>> agentCredentials = getConfig().getCredentials().get(agent.getId()); if (agentCredentials == null) { agentCredentials = new HashMap<String, List<FileCredentialStorage>>(); } List<FileCredentialStorage> credentials = agentCredentials.get(storageClass.getName()); if (credentials != null) { for (FileCredentialStorage fileCredentialStorage : credentials) { if (isCurrentCredential(fileCredentialStorage)) { return convertToCredentialStorage(storageClass, fileCredentialStorage); } } } return null; }
private Group removeGroup(Group group) { getConfig().getGroups().remove(group.getName()); for (GroupRole membership : new ArrayList<GroupRole>(getConfig().getMemberships())) { Group groupMembership = membership.getGroup(); if (groupMembership != null && groupMembership.getName().equals(group.getName())) { getConfig().getMemberships().remove(membership); } } flushGroups(); flushMemberships(); return group; }
private Role removeRole(Role role) { getConfig().getRoles().remove(role.getName()); for (GroupRole membership : new ArrayList<GroupRole>(getConfig().getMemberships())) { Role roleMembership = membership.getRole(); if (roleMembership != null && roleMembership.getName().equals(role.getName())) { getConfig().getMemberships().remove(membership); } } flushRoles(); flushMemberships(); return role; }
@Override public void removeMembership(IdentityType member, Group group, Role role) { for (GroupRole membership : new ArrayList<GroupRole>(getConfig().getMemberships())) { Agent providedMember = (Agent) member; Agent membershipMember = (Agent) membership.getMember(); if (membershipMember == null || providedMember == null || !membershipMember.getId().equals(providedMember.getId())) { continue; } if (hasGroupRole(membership, group, role)) { getConfig().getMemberships().remove(membership); } } flushMemberships(); }
@Override public void storeCredential(Agent agent, CredentialStorage storage) { Map<String, List<FileCredentialStorage>> agentCredentials = getConfig().getCredentials().get(agent.getId()); if (agentCredentials == null) { agentCredentials = new HashMap<String, List<FileCredentialStorage>>(); } List<FileCredentialStorage> credentials = agentCredentials.get(storage.getClass().getName()); if (credentials == null) { credentials = new ArrayList<FileCredentialStorage>(); } for (FileCredentialStorage fileCredentialStorage : credentials) { if (isCurrentCredential(fileCredentialStorage)) { fileCredentialStorage.setExpiryDate(new Date()); } } List<Property<Object>> annotatedTypes = PropertyQueries.createQuery(storage.getClass()) .addCriteria(new AnnotatedPropertyCriteria(Stored.class)).getResultList(); FileCredentialStorage credential = new FileCredentialStorage(); for (Property<Object> property : annotatedTypes) { credential.getStoredFields().put(property.getName(), (Serializable) property.getValue(storage)); } if (credential.getEffectiveDate() == null) { credential.setEffectiveDate(new Date()); } credentials.add(credential); agentCredentials.put(storage.getClass().getName(), credentials); getConfig().getCredentials().put(agent.getId(), agentCredentials); flushCredentials(); }
@Override public <T extends CredentialStorage> List<T> retrieveCredentials(Agent agent, Class<T> storageClass) { ArrayList<T> storedCredentials = new ArrayList<T>(); Map<String, List<FileCredentialStorage>> agentCredentials = getConfig().getCredentials().get(agent.getId()); if (agentCredentials == null) { agentCredentials = new HashMap<String, List<FileCredentialStorage>>(); } List<FileCredentialStorage> credentials = agentCredentials.get(storageClass.getName()); if (credentials != null) { for (FileCredentialStorage fileCredentialStorage : credentials) { storedCredentials.add(convertToCredentialStorage(storageClass, fileCredentialStorage)); } } return storedCredentials; }
private Agent removeAgent(Agent user) { getConfig().getUsers().remove(user.getId()); for (GroupRole membership : new ArrayList<GroupRole>(getConfig().getMemberships())) { IdentityType member = membership.getMember(); if (IDMUtil.isAgentType(member.getClass())) { Agent userMember = (Agent) member; if (userMember.getId().equals(user.getId())) { getConfig().getMemberships().remove(membership); } } } flushUsers(); flushMemberships(); return user; }
@Override public <T extends IdentityType> int countQueryResults(IdentityQuery<T> identityQuery) { throw createNotImplementedYetException(); }
@Override public <T extends Serializable> Attribute<T> getAttribute(IdentityType identityType, String attributeName) { throw createNotImplementedYetException(); }
@Override public void removeAttribute(IdentityType identityType, String attributeName) { throw createNotImplementedYetException(); }