Class InterfolioProvisioningTargetNativeSync

java.lang.Object
edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningTargetNativeSync
edu.internet2.middleware.grouper.app.interfolio.InterfolioProvisioningTargetNativeSync

public class InterfolioProvisioningTargetNativeSync extends GrouperProvisioningTargetNativeSync
Interfolio-specific GrouperProvisioningTargetNativeSync: captures the target users read off Interfolio into the generic grouper_prov_user reporting tables, from the raw users/search JSON. This is an entity-only provisioner, so only users are captured (no groups, no memberships). Capture is hooked at the API-commands read seam (GrouperInterfolioApiCommands.searchUsers(java.lang.String, java.lang.String, int, int)) where the full user JSON node is in scope. The target_user_id is the Interfolio pid (the provisioner key); the default captured attributes are first_name, last_name, and email (the fields users/search returns). Operators can capture any other users/search JSON field via nativeAttributesEntities with a name and optional JSON-Pointer path.
  • Constructor Details

    • InterfolioProvisioningTargetNativeSync

      public InterfolioProvisioningTargetNativeSync()
  • Method Details

    • getDefaultNativeAttributeConfigsEntities

      protected List<GrouperProvisioningNativeAttributeConfig> getDefaultNativeAttributeConfigsEntities()
      Description copied from class: GrouperProvisioningTargetNativeSync
      Per-protocol sensible-default attribute list for entities (users) when the operator hasn't configured nativeAttributesEntities. Override in protocol subclasses to return a curated list (e.g. SCIM core schema fields). Default is empty — for LDAP this means "no extra capture beyond what the regular target query returned," which is the historical behavior.
      Overrides:
      getDefaultNativeAttributeConfigsEntities in class GrouperProvisioningTargetNativeSync
    • getDefaultNativeAttributeConfigsGroups

      protected List<GrouperProvisioningNativeAttributeConfig> getDefaultNativeAttributeConfigsGroups()
      Description copied from class: GrouperProvisioningTargetNativeSync
      Per-protocol sensible-default attribute list for groups. See GrouperProvisioningTargetNativeSync.getDefaultNativeAttributeConfigsEntities().
      Overrides:
      getDefaultNativeAttributeConfigsGroups in class GrouperProvisioningTargetNativeSync
    • buildNativeUserFromJson

      public GrouperProvisioningTargetNativeUser buildNativeUserFromJson(com.fasterxml.jackson.databind.JsonNode userNode)
      Build a native user bean from the raw Interfolio users/search JSON. target_user_id is read from /pid; the attributes are populated by JSON Pointer for each configured attribute. Returns null when the JSON is missing or has no pid.
      Parameters:
      userNode - the raw user JSON
      Returns:
      the native user bean, or null
    • captureUserJson

      public void captureUserJson(com.fasterxml.jackson.databind.JsonNode userNode)
      Build + record an Interfolio user from its raw JSON. No-op when sync-back is off or id-less.
    • captureUserJsonFromCurrentProvisioner

      public static void captureUserJsonFromCurrentProvisioner(com.fasterxml.jackson.databind.JsonNode userNode)
      Capture an Interfolio user (from its raw JSON) against the current provisioner's sync. No-op if there is no current provisioner or the active provisioner is not an Interfolio one. Called from the commands read seam for every user read off the target.
      Parameters:
      userNode - the raw user JSON