@Override
    public void afterPropertiesSet() {
        if (cacheKeyGenerator == null) {
            cacheKeyGenerator = new AttributeBasedCacheKeyGenerator();
            var usernameAttributeProvider = getUsernameAttributeProvider();
            var usernameAttribute = usernameAttributeProvider.getUsernameAttribute();
            cacheKeyGenerator.setDefaultAttributeName(usernameAttribute);
        }
    }
A configurable caching implementation of {@link PersonAttributeDao}
which caches results from a wrapped {@link PersonAttributeDao}.

@author dgrimwood@unicon.net
@author Eric Dalquist
@since 7.1.0
support/cas-server-support-person-directory-core/src/main/java/org/apereo/cas/persondir/cache/CachingPersonAttributeDaoImpl.java