You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Purshotam Shah (Jira)" <ji...@apache.org> on 2025/05/06 17:55:00 UTC

[jira] [Updated] (FLINK-37764) Add support for configurable custom TrustManagerFactory in SSLUtils

     [ https://issues.apache.org/jira/browse/FLINK-37764?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Purshotam Shah updated FLINK-37764:
-----------------------------------
    Description: 
Thought for a couple of seconds

*Jira Description*

*Background*
Currently, SSLUtils only supports the built-in FingerprintTrustManagerFactory or the default JDK TrustManagerFactory. We need to allow users to plug in their own {{TrustManagerFactory}} implementation—so they can load a custom truststore, perform additional (in our case, enforce specific CN-name validation)

*Requirements*
 # Introduce a new config option:

{{security.ssl.trustmanager.factory.class}}
– Type: {{String}} (fully-qualified class name)
– No default value (optional)
– When set, Flink must:

 ** Instantiate this class via its no-arg constructor

 ** Call {{init(trustStore)}} on it, passing in the configured keystore

 ** Use it in place of the built-in fingerprint/Athenz/default logic

 # The user’s custom class *must* extend {{javax.net.ssl.TrustManagerFactory}} and in its implementation:

 ** Load the configured truststore

 ** Perform any custom SSL certificate verification

 ** Enforce CN-name checks to ensure only the specified Common Names are accepted

 # Fallback behavior when the option is *not* set:

 ** If {{ssl.*.cert-fingerprint}} is configured → use {{FingerprintTrustManagerFactory}}

 ** Else → use the JVM’s default {{TrustManagerFactory}}

> Add support for configurable custom TrustManagerFactory in SSLUtils
> -------------------------------------------------------------------
>
>                 Key: FLINK-37764
>                 URL: https://issues.apache.org/jira/browse/FLINK-37764
>             Project: Flink
>          Issue Type: Improvement
>            Reporter: Purshotam Shah
>            Priority: Major
>
> Thought for a couple of seconds
> *Jira Description*
> *Background*
> Currently, SSLUtils only supports the built-in FingerprintTrustManagerFactory or the default JDK TrustManagerFactory. We need to allow users to plug in their own {{TrustManagerFactory}} implementation—so they can load a custom truststore, perform additional (in our case, enforce specific CN-name validation)
> *Requirements*
>  # Introduce a new config option:
> {{security.ssl.trustmanager.factory.class}}
> – Type: {{String}} (fully-qualified class name)
> – No default value (optional)
> – When set, Flink must:
>  ** Instantiate this class via its no-arg constructor
>  ** Call {{init(trustStore)}} on it, passing in the configured keystore
>  ** Use it in place of the built-in fingerprint/Athenz/default logic
>  # The user’s custom class *must* extend {{javax.net.ssl.TrustManagerFactory}} and in its implementation:
>  ** Load the configured truststore
>  ** Perform any custom SSL certificate verification
>  ** Enforce CN-name checks to ensure only the specified Common Names are accepted
>  # Fallback behavior when the option is *not* set:
>  ** If {{ssl.*.cert-fingerprint}} is configured → use {{FingerprintTrustManagerFactory}}
>  ** Else → use the JVM’s default {{TrustManagerFactory}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)