@Override
    public Map<String, List<Object>> getAttributes(final RegisteredServiceAttributeReleasePolicyContext context) {
        val mergeStrategy = determineMergingStrategy();
        val principal = context.getPrincipal();
        val principalAttributes = getPrincipalAttributes(principal);

        LOGGER.trace("Operating principal attributes for processing are [{}]", principalAttributes);
        if (areAttributeRepositoryIdsDefined()) {
            val personDirectoryAttributes = retrievePersonAttributesFromAttributeRepository(context);
            LOGGER.debug("Merging current principal attributes with that of the repository via strategy [{}]", mergeStrategy);
            val mergedAttributes = CoreAuthenticationUtils.getAttributeMerger(mergeStrategy)
                .mergeAttributes(principalAttributes, personDirectoryAttributes);
            LOGGER.debug("Merged current principal attributes are [{}]", mergedAttributes);
            return convertAttributesToPrincipalAttributesAndCache(mergedAttributes, context);
        }
        return convertAttributesToPrincipalAttributesAndCache(principalAttributes, context);
    }
Default implementation of {@link RegisteredServicePrincipalAttributesRepository}
that just returns the attributes as it receives them.

@author Misagh Moayyed
@since 4.1
core/cas-server-core-authentication-attributes/src/main/java/org/apereo/cas/authentication/principal/DefaultPrincipalAttributesRepository.java