To be Reviewed By: January 13, 2020
Authors: Mario Ivanac
Status: Draft | Discussion | Active | Dropped | Superseded
Superseded by: N/A
Related: N/A
Problem
We would like to add generation of Server Name Indication (SNI) parameter to Client Hello message in geode.
Anti-Goals
Solution
Idea is to implement generic solution for modification of SSL parameters. If the user wishes to manipulate SSL Parameter
s they would need to define class which implements new interface and provide ServiceLoader pattern as a new configuration parameter.
Configuration:
We will introduce new configuration parameter:
- ssl-parameter-extension: User defined fully qualified class name implementing SSLParameterExtension interface for SSL parameter extensions. Defaults to "".
User class must implement SSLParameterExtension interface.
public interface SSLParameterExtension { default void init(Properties properties) {} default SSLParameters modifySSLClientSocketParameters(SSLParameters parameters) { return parameters; } default SSLParameters modifySSLServerSocketParameters(SSLParameters parameters) { return parameters; } }
For more details see: PR 4505
Changes and Additions to Public Interfaces
If you are proposing to add or modify public interfaces, those changes should be outlined here in detail.
Performance Impact
None
Backwards Compatibility and Upgrade Path
No upgrade or backwards compatibility issues.
Prior Art
What would be the alternatives to the proposed solution? What would happen if we don’t solve the problem? Why should this proposal be preferred?
FAQ
Answers to questions you’ve commonly been asked after requesting comments for this proposal.
Errata
Since this RFC was approved, modification of argument for init() method was proposed, since it takes a DistributionConfig as an argument, but that is an internal class.
New proposal is to use Properties as argument for init() method:
default void init(Properties properties) {}