/** * Gets a security role entity and ensure it exists. * * @param securityRoleName the security role name (case insensitive) * * @return the security role entity */ public SecurityRoleEntity getSecurityRoleEntity(String securityRoleName) { SecurityRoleEntity securityRoleEntity = securityRoleDao.getSecurityRoleByName(securityRoleName); if (securityRoleEntity == null) { throw new ObjectNotFoundException(String.format("Security role with name \"%s\" doesn't exist.", securityRoleName)); } return securityRoleEntity; } }
/** * Filters a set of roles based on a list of role values specific for herd. * * @param roles A given set of roles * * @return Valid roles from the specified set of roles */ private Set<String> getValidSecurityRoles(final Set<String> roles) { // Copy the set of specified roles to another set Set<String> incomingRoles = new HashSet<>(roles); // Copy the roles to a set for easier computation Set<SecurityRoleEntity> securityRoleEntities = new HashSet<>(securityRoleDao.getAllSecurityRoles()); // Collect all security role codes from the entities Set<String> securityRoles = securityRoleEntities.stream().map(SecurityRoleEntity::getCode).collect(Collectors.toSet()); // The Set of valid roles is the intersection of the two collections incomingRoles.retainAll(securityRoles); // Return valid roles return incomingRoles; } }
@Override public SecurityRoleKeys getSecurityRoles() { // Get and return all the security role keys. SecurityRoleKeys securityRoleKeys = new SecurityRoleKeys(); securityRoleKeys.getSecurityRoleKeys().addAll(securityRoleDao.getSecurityRoleKeys()); return securityRoleKeys; }
@Override public SecurityRole createSecurityRole(SecurityRoleCreateRequest securityRoleCreateRequest) { // Validate security roles create request. Assert.notNull(securityRoleCreateRequest, "A security role create request must be specified."); String securityRoleName = alternateKeyHelper.validateStringParameter("security role name", securityRoleCreateRequest.getSecurityRoleName()); securityRoleCreateRequest.setSecurityRoleName(securityRoleName); // Ensure a security role with the specified security role name doesn't already exist. SecurityRoleEntity securityRoleEntity = securityRoleDao.getSecurityRoleByName(securityRoleCreateRequest.getSecurityRoleName()); if (securityRoleEntity != null) { throw new AlreadyExistsException( String.format("Unable to create security role \"%s\" because it already exists.", securityRoleCreateRequest.getSecurityRoleName())); } // Create a security role entity from the request information. securityRoleEntity = createSecurityRoleEntity(securityRoleCreateRequest); // Persist the new entity. securityRoleEntity = securityRoleDao.saveAndRefresh(securityRoleEntity); // Create and return the security role object from the persisted entity. return createSecurityRoleFromEntity(securityRoleEntity); }
@Override public SecurityRole updateSecurityRole(SecurityRoleKey securityRoleKey, SecurityRoleUpdateRequest securityRoleUpdateRequest) { // Validate and trim security role key. String securityRole = validateSecurityRoleKey(securityRoleKey); // Validate security role update request. Assert.notNull(securityRoleUpdateRequest, "A security role update request must be specified."); // Retrieve and ensure that the security role exists. SecurityRoleEntity securityRoleEntity = getSecurityRoleEntityByName(new SecurityRoleKey(securityRole)); // Update the security role entity. securityRoleEntity.setDescription(securityRoleUpdateRequest.getDescription()); // Persist the entity. securityRoleEntity = securityRoleDao.saveAndRefresh(securityRoleEntity); // Create and return the security role from the security role entity. return createSecurityRoleFromEntity(securityRoleEntity); }
@Override public SecurityRole deleteSecurityRole(SecurityRoleKey securityRoleKey) { // validate and trim security role key. String securityRole = validateSecurityRoleKey(securityRoleKey); // get the security role entity. SecurityRoleEntity securityRoleEntity = getSecurityRoleEntityByName(new SecurityRoleKey(securityRole)); // Delete the security role. securityRoleDao.delete(securityRoleEntity); // Create and return the security role object from the deleted entity. return createSecurityRoleFromEntity(securityRoleEntity); }
@Override public SecurityRole createSecurityRole(SecurityRoleCreateRequest securityRoleCreateRequest) { // Validate security roles create request. Assert.notNull(securityRoleCreateRequest, "A security role create request must be specified."); String securityRoleName = alternateKeyHelper.validateStringParameter("security role name", securityRoleCreateRequest.getSecurityRoleName()); securityRoleCreateRequest.setSecurityRoleName(securityRoleName); // Ensure a security role with the specified security role name doesn't already exist. SecurityRoleEntity securityRoleEntity = securityRoleDao.getSecurityRoleByName(securityRoleCreateRequest.getSecurityRoleName()); if (securityRoleEntity != null) { throw new AlreadyExistsException( String.format("Unable to create security role \"%s\" because it already exists.", securityRoleCreateRequest.getSecurityRoleName())); } // Create a security role entity from the request information. securityRoleEntity = createSecurityRoleEntity(securityRoleCreateRequest); // Persist the new entity. securityRoleEntity = securityRoleDao.saveAndRefresh(securityRoleEntity); // Create and return the security role object from the persisted entity. return createSecurityRoleFromEntity(securityRoleEntity); }
@Override public SecurityRole updateSecurityRole(SecurityRoleKey securityRoleKey, SecurityRoleUpdateRequest securityRoleUpdateRequest) { // Validate and trim security role key. String securityRole = validateSecurityRoleKey(securityRoleKey); // Validate security role update request. Assert.notNull(securityRoleUpdateRequest, "A security role update request must be specified."); // Retrieve and ensure that the security role exists. SecurityRoleEntity securityRoleEntity = getSecurityRoleEntityByName(new SecurityRoleKey(securityRole)); // Update the security role entity. securityRoleEntity.setDescription(securityRoleUpdateRequest.getDescription()); // Persist the entity. securityRoleEntity = securityRoleDao.saveAndRefresh(securityRoleEntity); // Create and return the security role from the security role entity. return createSecurityRoleFromEntity(securityRoleEntity); }
@Override public SecurityRole deleteSecurityRole(SecurityRoleKey securityRoleKey) { // validate and trim security role key. String securityRole = validateSecurityRoleKey(securityRoleKey); // get the security role entity. SecurityRoleEntity securityRoleEntity = getSecurityRoleEntityByName(new SecurityRoleKey(securityRole)); // Delete the security role. securityRoleDao.delete(securityRoleEntity); // Create and return the security role object from the deleted entity. return createSecurityRoleFromEntity(securityRoleEntity); }
/** * Gets a security role entity and ensure it exists. * * @param securityRoleName the security role name (case insensitive) * * @return the security role entity */ public SecurityRoleEntity getSecurityRoleEntity(String securityRoleName) { SecurityRoleEntity securityRoleEntity = securityRoleDao.getSecurityRoleByName(securityRoleName); if (securityRoleEntity == null) { throw new ObjectNotFoundException(String.format("Security role with name \"%s\" doesn't exist.", securityRoleName)); } return securityRoleEntity; } }
/** * Creates and persists a security role entity. * * @param code the name of the security role * * @return the security role entity */ public SecurityRoleEntity createSecurityRoleEntity(String code) { SecurityRoleEntity securityRoleEntity = new SecurityRoleEntity(); securityRoleEntity.setCode(code); return securityRoleDao.saveAndRefresh(securityRoleEntity); }
/** * Filters a set of roles based on a list of role values specific for herd. * * @param roles A given set of roles * * @return Valid roles from the specified set of roles */ private Set<String> getValidSecurityRoles(final Set<String> roles) { // Copy the set of specified roles to another set Set<String> incomingRoles = new HashSet<>(roles); // Copy the roles to a set for easier computation Set<SecurityRoleEntity> securityRoleEntities = new HashSet<>(securityRoleDao.getAllSecurityRoles()); // Collect all security role codes from the entities Set<String> securityRoles = securityRoleEntities.stream().map(SecurityRoleEntity::getCode).collect(Collectors.toSet()); // The Set of valid roles is the intersection of the two collections incomingRoles.retainAll(securityRoles); // Return valid roles return incomingRoles; } }
@Override public SecurityRoleKeys getSecurityRoles() { // Get and return all the security role keys. SecurityRoleKeys securityRoleKeys = new SecurityRoleKeys(); securityRoleKeys.getSecurityRoleKeys().addAll(securityRoleDao.getSecurityRoleKeys()); return securityRoleKeys; }
private SecurityRoleEntity getSecurityRoleEntityByName(SecurityRoleKey securityRoleKey) { SecurityRoleEntity securityRoleEntity = securityRoleDao.getSecurityRoleByName(securityRoleKey.getSecurityRoleName()); if (securityRoleEntity == null) { throw new ObjectNotFoundException(String.format("Security role with name \"%s\" doesn't exist.", securityRoleKey.getSecurityRoleName())); } return securityRoleEntity; } }
/** * Creates and persists a security role entity * * @param code the name of the security role * * @param description the description of the security role * * @return the security role entity */ public SecurityRoleEntity createSecurityRoleEntity(String code,String description) { SecurityRoleEntity securityRoleEntity = new SecurityRoleEntity(); securityRoleEntity.setCode(code); securityRoleEntity.setDescription(description); return securityRoleDao.saveAndRefresh(securityRoleEntity); } }
@Test public void testGetAllSecurityRoles() { // Get all security roles List<SecurityRoleEntity> securityRoleEntities = securityRoleDao.getAllSecurityRoles(); // Add new security roles securityRoleDaoTestHelper.createTestSecurityRoles(); List<SecurityRoleEntity> securityRoleEntitiesNew = securityRoleDao.getAllSecurityRoles(); // Since the roles are cached, the test roles added will not be returned assertEquals(securityRoleEntities, securityRoleEntitiesNew); // Clear the cache and fetch the roles again cacheManager.getCache(DaoSpringModuleConfig.HERD_CACHE_NAME).clear(); securityRoleEntitiesNew = securityRoleDao.getAllSecurityRoles(); assertNotEquals(securityRoleEntities, securityRoleEntitiesNew); }
@Test public void testGetSecurityRoleKeys() { // Create a list of security role keys. final List<SecurityRoleKey> securityRoleKeys = ImmutableList.of(new SecurityRoleKey(SECURITY_ROLE), new SecurityRoleKey(SECURITY_ROLE_2)); // Create and persist security role entities in reverse order. for (SecurityRoleKey securityRoleKey : Lists.reverse(securityRoleKeys)) { securityRoleDaoTestHelper.createSecurityRoleEntity(securityRoleKey.getSecurityRoleName()); } // Get all security roles registered in the system. List<SecurityRoleKey> result = securityRoleDao.getSecurityRoleKeys(); // Validate the returned object. assertEquals(securityRoleKeys, result); } }
private SecurityRoleEntity getSecurityRoleEntityByName(SecurityRoleKey securityRoleKey) { SecurityRoleEntity securityRoleEntity = securityRoleDao.getSecurityRoleByName(securityRoleKey.getSecurityRoleName()); if (securityRoleEntity == null) { throw new ObjectNotFoundException(String.format("Security role with name \"%s\" doesn't exist.", securityRoleKey.getSecurityRoleName())); } return securityRoleEntity; } }
@Test public void testGetAllSecurityRolesValidateOrder() { // Add new security roles List<SecurityRoleEntity> testSecurityRoleEntities = securityRoleDaoTestHelper.createTestSecurityRoles(); // Clear the cache and fetch the roles cacheManager.getCache(DaoSpringModuleConfig.HERD_CACHE_NAME).clear(); // Get all security roles List<SecurityRoleEntity> securityRoleEntities = securityRoleDao.getAllSecurityRoles(); // validate that new roles have been added assertTrue(securityRoleEntities.containsAll(testSecurityRoleEntities)); // validate that security roles are returned in a sorted order assertTrue(securityRoleEntities.indexOf(testSecurityRoleEntities.get(1)) > securityRoleEntities.indexOf(testSecurityRoleEntities.get(0))); }
@Test public void testGetSecurityRoleByName() { // Create a security role entity. SecurityRoleEntity securityRoleEntity = securityRoleDaoTestHelper.createSecurityRoleEntity(SECURITY_ROLE, DESCRIPTION); // Retrieve the security role entity. assertEquals(securityRoleEntity, securityRoleDao.getSecurityRoleByName(SECURITY_ROLE)); // Test case insensitivity of security role name. assertEquals(securityRoleEntity, securityRoleDao.getSecurityRoleByName(SECURITY_ROLE.toUpperCase())); assertEquals(securityRoleEntity, securityRoleDao.getSecurityRoleByName(SECURITY_ROLE.toLowerCase())); }