Add missing SslContextBuilder.forServer(KeyManagerFactory)
Motivation: keyManager() is required on server-side, and so there is a forServer() method for each override of keyManager(). However, one of the forServer() overrides was missing, which meant that if you wanted to use a KeyManagerFactory you were forced to provide garbage configuration just to get past null checks. Modifications: Add missing override. Result: No hacks to use SslContextBuilder on server-side with KeyManagerFactory. Resolves #3775
This commit is contained in:
parent
cbbcdaa249
commit
864f196c67
@ -76,7 +76,7 @@ import java.util.List;
|
|||||||
* <pre>
|
* <pre>
|
||||||
* // In your {@link ChannelInitializer}:
|
* // In your {@link ChannelInitializer}:
|
||||||
* {@link ChannelPipeline} p = channel.pipeline();
|
* {@link ChannelPipeline} p = channel.pipeline();
|
||||||
* {@link SslContext} sslCtx = {@link #newBuilderForClient() SslContext.newBuilderForClient()}.build();
|
* {@link SslContext} sslCtx = {@link SslContextBuilder#forClient() SslContextBuilder.forClient()}.build();
|
||||||
* p.addLast("ssl", {@link #newEngine(ByteBufAllocator, String, int) sslCtx.newEngine(channel.alloc(), host, port)});
|
* p.addLast("ssl", {@link #newEngine(ByteBufAllocator, String, int) sslCtx.newEngine(channel.alloc(), host, port)});
|
||||||
* ...
|
* ...
|
||||||
* </pre>
|
* </pre>
|
||||||
|
@ -39,6 +39,7 @@ public final class SslContextBuilder {
|
|||||||
*
|
*
|
||||||
* @param keyCertChainFile an X.509 certificate chain file in PEM format
|
* @param keyCertChainFile an X.509 certificate chain file in PEM format
|
||||||
* @param keyFile a PKCS#8 private key file in PEM format
|
* @param keyFile a PKCS#8 private key file in PEM format
|
||||||
|
* @see #keyManager(File, File)
|
||||||
*/
|
*/
|
||||||
public static SslContextBuilder forServer(File keyCertChainFile, File keyFile) {
|
public static SslContextBuilder forServer(File keyCertChainFile, File keyFile) {
|
||||||
return new SslContextBuilder(true).keyManager(keyCertChainFile, keyFile);
|
return new SslContextBuilder(true).keyManager(keyCertChainFile, keyFile);
|
||||||
@ -51,12 +52,23 @@ public final class SslContextBuilder {
|
|||||||
* @param keyFile a PKCS#8 private key file in PEM format
|
* @param keyFile a PKCS#8 private key file in PEM format
|
||||||
* @param keyPassword the password of the {@code keyFile}, or {@code null} if it's not
|
* @param keyPassword the password of the {@code keyFile}, or {@code null} if it's not
|
||||||
* password-protected
|
* password-protected
|
||||||
|
* @see #keyManager(File, File, String)
|
||||||
*/
|
*/
|
||||||
public static SslContextBuilder forServer(
|
public static SslContextBuilder forServer(
|
||||||
File keyCertChainFile, File keyFile, String keyPassword) {
|
File keyCertChainFile, File keyFile, String keyPassword) {
|
||||||
return new SslContextBuilder(true).keyManager(keyCertChainFile, keyFile, keyPassword);
|
return new SslContextBuilder(true).keyManager(keyCertChainFile, keyFile, keyPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a builder for new server-side {@link SslContext}.
|
||||||
|
*
|
||||||
|
* @param keyManagerFactory non-{@code null} factory for server's private key
|
||||||
|
* @see #keyManager(KeyManagerFactory)
|
||||||
|
*/
|
||||||
|
public static SslContextBuilder forServer(KeyManagerFactory keyManagerFactory) {
|
||||||
|
return new SslContextBuilder(true).keyManager(keyManagerFactory);
|
||||||
|
}
|
||||||
|
|
||||||
private final boolean forServer;
|
private final boolean forServer;
|
||||||
private SslProvider provider;
|
private SslProvider provider;
|
||||||
private File trustCertChainFile;
|
private File trustCertChainFile;
|
||||||
|
Loading…
Reference in New Issue
Block a user