Search in sources :

Example 26 with SslContext

use of io.netty.handler.ssl.SslContext in project grpc-java by grpc.

the class NettyClientTransportTest method startServer.

private void startServer(int maxStreamsPerConnection, int maxHeaderListSize) throws IOException {
    File serverCert = TestUtils.loadCert("server1.pem");
    File key = TestUtils.loadCert("server1.key");
    SslContext serverContext = GrpcSslContexts.forServer(serverCert, key).ciphers(TestUtils.preferredTestCiphers(), SupportedCipherSuiteFilter.INSTANCE).build();
    ProtocolNegotiator negotiator = ProtocolNegotiators.serverTls(serverContext);
    server = new NettyServer(TestUtils.testServerAddress(0), NioServerSocketChannel.class, group, group, negotiator, maxStreamsPerConnection, DEFAULT_WINDOW_SIZE, DEFAULT_MAX_MESSAGE_SIZE, maxHeaderListSize);
    server.start(serverListener);
    address = TestUtils.testServerAddress(server.getPort());
    authority = GrpcUtil.authorityFromHostAndPort(address.getHostString(), address.getPort());
}
Also used : NioServerSocketChannel(io.netty.channel.socket.nio.NioServerSocketChannel) File(java.io.File) SslContext(io.netty.handler.ssl.SslContext)

Example 27 with SslContext

use of io.netty.handler.ssl.SslContext in project grpc-java by grpc.

the class ConcurrencyTest method newServer.

/**
   * Creates and starts a new {@link TestServiceImpl} server.
   */
private Server newServer() throws CertificateException, IOException {
    File serverCertChainFile = TestUtils.loadCert("server1.pem");
    File serverPrivateKeyFile = TestUtils.loadCert("server1.key");
    X509Certificate[] serverTrustedCaCerts = { TestUtils.loadX509Cert("ca.pem") };
    SslContext sslContext = GrpcSslContexts.forServer(serverCertChainFile, serverPrivateKeyFile).trustManager(serverTrustedCaCerts).clientAuth(ClientAuth.REQUIRE).build();
    return NettyServerBuilder.forPort(0).sslContext(sslContext).addService(new TestServiceImpl(serverExecutor)).build().start();
}
Also used : File(java.io.File) X509Certificate(java.security.cert.X509Certificate) SslContext(io.netty.handler.ssl.SslContext)

Example 28 with SslContext

use of io.netty.handler.ssl.SslContext in project grpc-java by grpc.

the class NettyServerBuilderTest method failIfSslContextIsNotServer.

@Test
public void failIfSslContextIsNotServer() {
    SslContext sslContext = mock(SslContext.class);
    when(sslContext.isClient()).thenReturn(true);
    NettyServerBuilder builder = NettyServerBuilder.forPort(8080);
    thrown.expect(IllegalArgumentException.class);
    thrown.expectMessage("Client SSL context can not be used for server");
    builder.sslContext(sslContext);
}
Also used : SslContext(io.netty.handler.ssl.SslContext) Test(org.junit.Test)

Example 29 with SslContext

use of io.netty.handler.ssl.SslContext in project grpc-java by grpc.

the class ProtocolNegotiatorsTest method tls_hostAndPort.

@Test
public void tls_hostAndPort() throws SSLException {
    SslContext ctx = GrpcSslContexts.forClient().build();
    TlsNegotiator negotiator = (TlsNegotiator) ProtocolNegotiators.tls(ctx, "authority:1234");
    assertEquals("authority", negotiator.getHost());
    assertEquals(1234, negotiator.getPort());
}
Also used : TlsNegotiator(io.grpc.netty.ProtocolNegotiators.TlsNegotiator) SslContext(io.netty.handler.ssl.SslContext) Test(org.junit.Test)

Example 30 with SslContext

use of io.netty.handler.ssl.SslContext in project grpc-java by grpc.

the class ProtocolNegotiatorsTest method tls_invalidHost.

@Test
public void tls_invalidHost() throws SSLException {
    SslContext ctx = GrpcSslContexts.forClient().build();
    TlsNegotiator negotiator = (TlsNegotiator) ProtocolNegotiators.tls(ctx, "bad_host:1234");
    // Even though it looks like a port, we treat it as part of the authority, since the host is
    // invalid.
    assertEquals("bad_host:1234", negotiator.getHost());
    assertEquals(-1, negotiator.getPort());
}
Also used : TlsNegotiator(io.grpc.netty.ProtocolNegotiators.TlsNegotiator) SslContext(io.netty.handler.ssl.SslContext) Test(org.junit.Test)

Aggregations

SslContext (io.netty.handler.ssl.SslContext)63 NioEventLoopGroup (io.netty.channel.nio.NioEventLoopGroup)37 EventLoopGroup (io.netty.channel.EventLoopGroup)35 ServerBootstrap (io.netty.bootstrap.ServerBootstrap)22 Channel (io.netty.channel.Channel)20 NioServerSocketChannel (io.netty.channel.socket.nio.NioServerSocketChannel)19 LoggingHandler (io.netty.handler.logging.LoggingHandler)19 SelfSignedCertificate (io.netty.handler.ssl.util.SelfSignedCertificate)19 Bootstrap (io.netty.bootstrap.Bootstrap)16 NioSocketChannel (io.netty.channel.socket.nio.NioSocketChannel)16 SocketChannel (io.netty.channel.socket.SocketChannel)15 ChannelFuture (io.netty.channel.ChannelFuture)11 File (java.io.File)11 ChannelPipeline (io.netty.channel.ChannelPipeline)10 Test (org.junit.Test)10 SslContextBuilder (io.netty.handler.ssl.SslContextBuilder)7 ApplicationProtocolConfig (io.netty.handler.ssl.ApplicationProtocolConfig)5 SSLHelper (io.vertx.core.net.impl.SSLHelper)4 BufferedReader (java.io.BufferedReader)4 InputStreamReader (java.io.InputStreamReader)4