protected Map<String, List<Object>> retrievePersonAttributesFromAttributeRepository(
        final RegisteredServiceAttributeReleasePolicyContext context) {
        val repository = context.getApplicationContext().getBean(PrincipalResolver.BEAN_NAME_ATTRIBUTE_REPOSITORY, PersonAttributeDao.class);
        return PrincipalAttributeRepositoryFetcher
            .builder()
            .attributeRepository(repository)
            .principalId(context.getPrincipal().getId())
            .activeAttributeRepositoryIdentifiers(this.attributeRepositoryIds)
            .currentPrincipal(context.getPrincipal())
            .build()
            .retrieve();
    }
The merging strategy that deals with existing principal attributes
and those that are retrieved from the source. By default, existing attributes
are ignored and the source is always consulted.
core/cas-server-core-authentication-attributes/src/main/java/org/apereo/cas/authentication/principal/cache/AbstractPrincipalAttributesRepository.java