private static ClientAuthenticationMethod firstSupportedMethod(final List<ClientAuthenticationMethod> metadataMethods) {
        Optional<ClientAuthenticationMethod> firstSupported = 
            metadataMethods.stream().filter((m) -> SUPPORTED_METHODS.contains(m)).findFirst();
        if (firstSupported.isPresent()) {
            return firstSupported.get();
        } else {
            throw new TechnicalException("None of the Token endpoint provider metadata authentication methods are supported: " + 
                metadataMethods);
        }
    }
private static ClientAuthenticationMethod firstSupportedMethod ( final List < ClientAuthenticationMethod > metadataMethods ) { Optional < ClientAuthenticationMethod > firstSupported = metadataMethods . stream ( ) . filter ( ( m ) -> SUPPORTED_METHODS . contains ( m ) ) . findFirst ( ) ; if ( firstSupported . isPresent ( ) ) { return firstSupported . get ( ) ; } else { throw new TechnicalException ( "None of the Token endpoint provider metadata authentication methods are supported: " + metadataMethods ) ; } }
The first {@link ClientAuthenticationMethod} from the given list of
methods that is supported by this implementation.

@throws TechnicalException
if none of the provider-supported methods is supported.