@Override
    public String getPrincipalIdFrom(final JoinPoint auditTarget, final Authentication authentication,
                                     final Object resultValue, final Exception exception) {
        val result = providers
            .stream()
            .filter(BeanSupplier::isNotProxy)
            .filter(p -> p.supports(auditTarget, authentication, resultValue, exception))
            .findFirst()
            .orElseGet(DefaultAuditPrincipalIdProvider::new);
        return result.getPrincipalIdFrom(auditTarget, authentication, resultValue, exception);
    }
Add providers.

@param provider the provider
core/cas-server-core-audit-api/src/main/java/org/apereo/cas/audit/spi/principal/ChainingAuditPrincipalIdProvider.java