@Override
    public String determineFingerprint(final Authentication authentication,
                                       final HttpServletRequest request,
                                       final HttpServletResponse response) {
        return deviceFingerprintExtractors
            .stream()
            .filter(BeanSupplier::isNotProxy)
            .sorted(AnnotationAwareOrderComparator.INSTANCE)
            .map(Unchecked.function(component -> component.extract(authentication, request, response)))
            .filter(Optional::isPresent)
            .map(Optional::get)
            .collect(Collectors.joining(componentSeparator));
    }
Default {@link DeviceFingerprintStrategy} implementation that uses {@link DeviceFingerprintExtractor} to generate
a fingerprint.

@author Daniel Frett
@since 5.3.0
support/cas-server-support-trusted-mfa-core/src/main/java/org/apereo/cas/trusted/web/flow/fingerprint/DefaultDeviceFingerprintStrategy.java