public Directory buildInternalDirectory(InternalDirectoryConfiguration configuration) {
    ImmutableDirectory.Builder builder = createBuilder();
    builder.setAllowedOperations(EnumSet.allOf(OperationType.class));
    builder.setActive(configuration.isActive());
    builder.setId(configuration.getDirectoryId());
    builder.setImplementationClass(InternalDirectory.class.getName());
    builder.setName(configuration.getName());
    builder.setType(DirectoryType.INTERNAL);

    HashMap<String, String> map = new HashMap<String, String>();
    map.put(
        InternalDirectory.ATTRIBUTE_USER_ENCRYPTION_METHOD,
        PasswordEncoderFactory.ATLASSIAN_SECURITY_ENCODER);
    map.put(
        DirectoryImpl.ATTRIBUTE_KEY_USE_NESTED_GROUPS,
        Boolean.valueOf(configuration.isNestedGroupsEnabled()).toString());
    builder.setAttributes(map);

    return builder.toDirectory();
  }