Source:
<code>public void init() { final List<ClaimMapping> list = new ArrayList<>(); list.add(new ClaimMapping("sub", subAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("name", nameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("given_name", givenNameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("family_name", familyNameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("middle_name", middleNameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("nickname", nicknameAttr, DataTypeConverter.STRING)); list.add( new ClaimMapping( "preferred_username", preferredUsernameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("profile", profileAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("picture", pictureAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("website", websiteAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("email", emailAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("email_verified", emailVerifiedAttr, DataTypeConverter.BOOLEAN)); list.add(new ClaimMapping("gender", genderAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("birthdate", birthdateAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("zoneinfo", zoneinfoAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("locale", localeAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("phone_number", phoneNumberAttr, DataTypeConverter.STRING)); list.add( new ClaimMapping( "phone_number_verified", phoneNumberVerifiedAttr, DataTypeConverter.BOOLEAN)); list.add(new ClaimMapping("updated_at", updatedAtAttributeName, DataTypeConverter.NUMBER)); <START> <END> mappings = Collections.unmodifiableList(list); }</code><technical_language>discussion had, is permitted (something "roles": ["Admin", ]), recommend some filtering in-place limit values application groups/roles, token bloat issue. MemberOf hundreds of values include full DN in value, if pulled LDAP, provides value</technical_language>

Target:
public void init() { final List<ClaimMapping> list = new ArrayList<>(); list.add(new ClaimMapping("sub", subAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("name", nameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("given_name", givenNameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("family_name", familyNameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("middle_name", middleNameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("nickname", nicknameAttr, DataTypeConverter.STRING)); list.add( new ClaimMapping( "preferred_username", preferredUsernameAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("profile", profileAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("picture", pictureAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("website", websiteAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("email", emailAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("email_verified", emailVerifiedAttr, DataTypeConverter.BOOLEAN)); list.add(new ClaimMapping("gender", genderAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("birthdate", birthdateAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("zoneinfo", zoneinfoAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("locale", localeAttr, DataTypeConverter.STRING)); list.add(new ClaimMapping("phone_number", phoneNumberAttr, DataTypeConverter.STRING)); list.add( new ClaimMapping( "phone_number_verified", phoneNumberVerifiedAttr, DataTypeConverter.BOOLEAN)); list.add(new ClaimMapping("updated_at", updatedAtAttributeName, DataTypeConverter.NUMBER)); mappings = Collections.unmodifiableList(list); groupsWhitelist = Collections.unmodifiableList( Arrays.stream(groupsWhitelistProperty.split(GROUPS_WHITELIST_SEPARATOR)) .map(item -> item.trim()) .collect(Collectors.toList())); }