@Override
    public List<Object> resolveAttributeValues(final AttributeDefinitionResolutionContext context) throws Throwable {
        if (isPersistent() && StringUtils.isNotBlank(this.salt)) {
            val givenSalt = SpringExpressionLanguageValueResolver.getInstance().resolve(this.salt);
            val generator = new ShibbolethCompatiblePersistentIdGenerator(givenSalt);
            val finalValue = generator.generate(context.getPrincipal(), context.getService());
            LOGGER.debug("Generated persistent attribute definition value [{}] for [{}]", finalValue, getKey());
            return CollectionUtils.wrapList(finalValue);
        }
        return super.resolveAttributeValues(context);
    }
This is {@link SamlIdPAttributeDefinition}.

@author Misagh Moayyed
@since 6.2.0
support/cas-server-support-saml-idp-web/src/main/java/org/apereo/cas/support/saml/web/idp/profile/builders/attr/SamlIdPAttributeDefinition.java