protected UserProfile mapPrincipalToUserProfile(final UserProfile userProfile, final Principal principal,
                                                    final Credential credential) {

        updateUserProfileWithAttribute(userProfile, principal, "department", userProfile::setDepartment);
        updateUserProfileWithAttribute(userProfile, principal, "city", userProfile::setCity);
        updateUserProfileWithAttribute(userProfile, principal, "costCenter", userProfile::setCostCenter);
        updateUserProfileWithAttribute(userProfile, principal, "countryCode", userProfile::setCountryCode);
        updateUserProfileWithAttribute(userProfile, principal, "displayName", userProfile::setDisplayName);
        updateUserProfileWithAttribute(userProfile, principal, "division", userProfile::setDivision);
        updateUserProfileWithAttribute(userProfile, principal, "email", userProfile::setEmail);
        updateUserProfileWithAttribute(userProfile, principal, "employeeNumber", userProfile::setEmployeeNumber);
        updateUserProfileWithAttribute(userProfile, principal, "honorificPrefix", userProfile::setHonorificPrefix);
        updateUserProfileWithAttribute(userProfile, principal, "honorificSuffix", userProfile::setHonorificSuffix);
        updateUserProfileWithAttribute(userProfile, principal, "lastName", userProfile::setLastName);
        updateUserProfileWithAttribute(userProfile, principal, "locale", userProfile::setLocale);
        updateUserProfileWithAttribute(userProfile, principal, "manager", userProfile::setManager);
        updateUserProfileWithAttribute(userProfile, principal, "managerId", userProfile::setManagerId);
        updateUserProfileWithAttribute(userProfile, principal, "middleName", userProfile::setMiddleName);
        updateUserProfileWithAttribute(userProfile, principal, "mobilePhone", userProfile::setMobilePhone);
        updateUserProfileWithAttribute(userProfile, principal, "nickName", userProfile::setNickName);
        updateUserProfileWithAttribute(userProfile, principal, "firstName", userProfile::setFirstName);
        updateUserProfileWithAttribute(userProfile, principal, "organization", userProfile::setOrganization);
        updateUserProfileWithAttribute(userProfile, principal, "postalAddress", userProfile::setPostalAddress);
        updateUserProfileWithAttribute(userProfile, principal, "preferredLanguage", userProfile::setPreferredLanguage);
        updateUserProfileWithAttribute(userProfile, principal, "primaryPhone", userProfile::setPrimaryPhone);
        updateUserProfileWithAttribute(userProfile, principal, "secondEmail", userProfile::setSecondEmail);
        updateUserProfileWithAttribute(userProfile, principal, "state", userProfile::setState);
        updateUserProfileWithAttribute(userProfile, principal, "streetAddress", userProfile::setStreetAddress);
        updateUserProfileWithAttribute(userProfile, principal, "timezone", userProfile::setTimezone);
        updateUserProfileWithAttribute(userProfile, principal, "title", userProfile::setTitle);
        updateUserProfileWithAttribute(userProfile, principal, "zipCode", userProfile::setZipCode);

        return userProfile;
    }
This is {@link OktaPrincipalProvisioner}.

@author Misagh Moayyed
@since 7.0.0
support/cas-server-support-okta-authentication/src/main/java/org/apereo/cas/okta/OktaPrincipalProvisioner.java