public static FileIdentityStoreConfiguration getConfiguration() { return new FileIdentityStoreConfiguration(); }
/** * <p> * Initializes the files used to store the informations. * </p> */ private void initDataFiles() { File workingDirectoryFile = initWorkingDirectory(); this.usersFile = checkAndCreateFile(new File(workingDirectoryFile.getPath() + "/pl-idm-users.db")); this.rolesFile = checkAndCreateFile(new File(workingDirectoryFile.getPath() + "/pl-idm-roles.db")); this.groupsFile = checkAndCreateFile(new File(workingDirectoryFile.getPath() + "/pl-idm-groups.db")); this.membershipsFile = checkAndCreateFile(new File(workingDirectoryFile.getPath() + "/pl-idm-memberships.db")); this.credentialsFile = checkAndCreateFile(new File(workingDirectoryFile.getPath() + "/pl-idm-credentials.db")); }
/** * <p> * Flush all changes made to credentials to the filesystem. * </p> */ synchronized void flushCredentials() { try { FileOutputStream fos = new FileOutputStream(this.getConfig().getCredentialsFile()); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(getConfig().getCredentials()); oos.close(); } catch (Exception e) { e.printStackTrace(); } }
/** * <p> * Flush all changes made to memberships to the filesystem. * </p> */ synchronized void flushMemberships() { try { FileOutputStream fos = new FileOutputStream(this.getConfig().getMembershipsFile()); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(getConfig().getMemberships()); oos.close(); } catch (Exception e) { e.printStackTrace(); } }
/** * <p> * Flush all changes made to roles to the filesystem. * </p> */ synchronized void flushRoles() { try { FileOutputStream fos = new FileOutputStream(this.getConfig().getRolesFile()); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(getConfig().getRoles()); oos.close(); } catch (Exception e) { } }
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(); for (GroupRole membership : getConfig().getMemberships()) { if (IDMUtil.isAgentType(fileUser.getClass()) && IDMUtil.isAgentType(membership.getMember().getClass())) { Agent selectedAgent = (Agent) fileUser;
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; }
/** * <p> * Flush all changes made to groups to the filesystem. * </p> */ synchronized void flushGroups() { try { FileOutputStream fos = new FileOutputStream(this.getConfig().getGroupsFile()); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(getConfig().getGroups()); oos.close(); } catch (Exception e) { e.printStackTrace(); } }
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; }
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; }
@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 Group getGroup(String groupId) { return getConfig().getGroups().get(groupId); }
@Override public Role getRole(String role) { return getConfig().getRoles().get(role); }
@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; }
/** * <p> * Load all persisted groups from the filesystem. * </p> */ private void loadGroups() { ObjectInputStream ois = null; try { FileInputStream fis = new FileInputStream(getGroupsFile()); ois = new ObjectInputStream(fis); this.groups = (Map<String, Group>) ois.readObject(); } catch (Exception e) { } finally { try { if (ois != null) { ois.close(); } } catch (IOException e) { } } }
/** * <p> * Load all persisted memberships from the filesystem. * </p> */ private void loadMemberships() { ObjectInputStream ois = null; try { FileInputStream fis = new FileInputStream(getMembershipsFile()); ois = new ObjectInputStream(fis); this.memberships = (List<GroupRole>) ois.readObject(); } catch (Exception e) { } finally { try { if (ois != null) { ois.close(); } } catch (IOException e) { } } }
/** * <p> * Load all persisted roles from the filesystem. * </p> */ private void loadRoles() { ObjectInputStream ois = null; try { FileInputStream fis = new FileInputStream(getRolesFile()); ois = new ObjectInputStream(fis); this.roles = (Map<String, Role>) ois.readObject(); } catch (Exception e) { } finally { try { if (ois != null) { ois.close(); } } catch (IOException e) { } } }
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 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(); }
private Group updateGroup(Group updatedGroup, Group storedGroup) { if (storedGroup != updatedGroup) { updateCommonProperties(updatedGroup, storedGroup); } getConfig().getGroups().put(storedGroup.getName(), storedGroup); flushGroups(); return storedGroup; }