カスタムSSLSocketFactory

PostgreSQL™は開発者に対し、SSL接続の確立方法をカスタマイズする方法を提供します。 開発者に独自のSSLContextインスタンスの作成を許可することによって独自の認証源やその他の拡張を提供することができます。 接続URLパラメータのsslfactorysslfactoryargによって、ユーザはどのカスタムクラスを使用してSSLSocketFactoryを作成するかを指定することができます。 sslfactoryで指定するクラス名は、javax.net.ssl.SSLSocketFactoryを継承したものでなければならず、また、ドライバのクラスローダから利用可能でなければなりません。 このクラスは引数を持たないコンストラクタもしくはString型の引数を1つ取るコンストラクタを持たなければなりません。 この引数は省略可能でsslfactoryargによって与えられます。

こうしたクラスの具体的な実装方法に関する情報は本書の範囲を超えています。 JSSE リファレンスガイドやJDBCドライバに付属するNonValidatingFactoryのソースが参考になります。

JDBCドライバの開発者がJavaのSSL APIを熟知しているとはいえません。 また、私達はユーザがこの機構を使って実装した、面白い、また、一般的に有用な拡張に興味を持っています。 特に、クライアント証明をサーバが検証できるようになれば良いですね。