Class GrouperProvisioningNativeAttributeConfig
java.lang.Object
edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningNativeAttributeConfig
One entry in a native-attributes JSON config (per provisioner, separate lists for
entities and groups). Identifies an extra target-side attribute to capture for the
generic provisioner reporting tables (grouper_prov_*_attr / _attr_value).
Shape per entry in the JSON array:
{ "name": "active", }
{ "name": "displayName" }
{ "name": "lastModified", "path": "/meta/lastModified", "type": "timestamp" }
name(required, non-blank): attribute name written to grouper_prov_*_attrpath(optional): SCIM JSON Pointer or LDAP attribute name; defaults to"/" + namefor SCIM-style provisioners,namefor LDAP-styletype(optional): one ofstring|integer|boolean|timestamp; defaults to auto-detect from the runtime value
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThrown byparseAndValidate(java.lang.String, java.lang.String)on a structural problem. -
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
GrouperProvisioningNativeAttributeConfig
public GrouperProvisioningNativeAttributeConfig()
-
-
Method Details
-
getName
-
setName
-
getPath
-
setPath
-
getType
-
setType
-
parseAndValidate
public static List<GrouperProvisioningNativeAttributeConfig> parseAndValidate(String json, String configLabel) parse and validate a native-attributes config string. Accepts two forms:1. Comma-separated list (LDAP-style, simple attribute names only):
sn, mail, telephoneNumber
Each token becomes an entry withname=path=token,type=null(auto-detect). Use this when each attribute is a flat name with no nested path and no explicit type.2. JSON array (full form, supports nested paths and explicit types):
[ { "name": "active" }, { "name": "displayName" }, { "name": "lastModified", "path": "/meta/lastModified", "type": "timestamp" } ]Detection rule: input that starts with
[(after trimming) is parsed as JSON; anything else is parsed as CSV.- Parameters:
json- the input (CSV or JSON array), may be null/blank (returns empty list)configLabel- a human-readable label used in error messages (e.g. "nativeAttributesEntities")- Returns:
- parsed entries; never null
- Throws:
RuntimeException- if the input is malformed or any entry fails validation
-