Example usage for io.netty.handler.ssl SslContextBuilder forServer

List of usage examples for io.netty.handler.ssl SslContextBuilder forServer

Introduction

In this page you can find the example usage for io.netty.handler.ssl SslContextBuilder forServer.

Prototype

boolean forServer

To view the source code for io.netty.handler.ssl SslContextBuilder forServer.

Click Source Link

Usage

From source file:org.robotbrains.support.web.server.netty.NettyWebServer.java

License:Apache License

@Override
public void startup() {
    try {/*from   w  ww  . j  a v a  2 s.  com*/
        // Configure SSL.
        SslContext sslCtx;
        if (SSL) {
            SelfSignedCertificate ssc = new SelfSignedCertificate();
            sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
        } else {
            sslCtx = null;
        }

        serverHandler = new NettyWebServerHandler(this);

        bossGroup = new NioEventLoopGroup(1);
        workerGroup = new NioEventLoopGroup();

        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup).channel(ServerChannelWithId.class)
                .childHandler(new NettyWebServerInitializer(sslCtx, this, serverHandler));

        b.bind(port).sync();
    } catch (Throwable e) {
        throw SmartSpacesException.newFormattedException(e, "Could not create web server");
    }
}

From source file:org.springframework.boot.web.embedded.netty.SslServerCustomizer.java

License:Apache License

protected SslContextBuilder getContextBuilder() {
    SslContextBuilder builder = SslContextBuilder
            .forServer(getKeyManagerFactory(this.ssl, this.sslStoreProvider))
            .trustManager(getTrustManagerFactory(this.ssl, this.sslStoreProvider));
    if (this.ssl.getEnabledProtocols() != null) {
        builder.protocols(this.ssl.getEnabledProtocols());
    }//from   w  w w .ja  va  2 s  .c  om
    if (this.ssl.getCiphers() != null) {
        builder.ciphers(Arrays.asList(this.ssl.getCiphers()));
    }
    if (this.ssl.getClientAuth() == Ssl.ClientAuth.NEED) {
        builder.clientAuth(ClientAuth.REQUIRE);
    } else if (this.ssl.getClientAuth() == Ssl.ClientAuth.WANT) {
        builder.clientAuth(ClientAuth.OPTIONAL);
    }
    return builder;
}

From source file:org.springframework.cloud.stream.app.websocket.sink.WebsocketSinkServerInitializer.java

License:Apache License

private SslContext configureSslContext() throws CertificateException, SSLException {
    if (properties.isSsl()) {
        SelfSignedCertificate ssc = new SelfSignedCertificate();
        return SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
    } else {//w  ww.j a v a2  s  .  c  om
        return null;
    }
}

From source file:org.springframework.http.server.reactive.bootstrap.ReactorHttpsServer.java

License:Apache License

@Override
protected void initServer() throws Exception {

    SelfSignedCertificate cert = new SelfSignedCertificate();
    SslContextBuilder builder = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());

    this.reactorHandler = createHttpHandlerAdapter();
    this.reactorServer = reactor.netty.http.server.HttpServer.create().host(getHost()).port(getPort())
            .secure(spec -> spec.sslContext(builder).defaultConfiguration(DefaultConfigurationType.TCP));
}

From source file:org.wso2.carbon.inbound.endpoint.protocol.http2.management.Http2EndpointManager.java

License:Open Source License

public SslContext getSSLContext(InboundWebsocketSSLConfiguration sslconfig) {
    SslContext sslContext = null;//  ww w.j ava  2  s. c  om
    SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
    try {
        SelfSignedCertificate ssc = new SelfSignedCertificate();
        SSLHandlerFactory handlerFactory = new SSLHandlerFactory(sslconfig);
        sslContext = SslContextBuilder.forServer(handlerFactory.getKeyStoreFactory())
                .trustManager(handlerFactory.getTrustStoreFactory()).sslProvider(provider)
                /* NOTE: the cipher filter may not include all ciphers required by the HTTP/2 specification.
                 * Please refer to the HTTP/2 specification for cipher requirements. */
                .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
                .applicationProtocolConfig(
                        new ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol.ALPN,
                                // NO_ADVERTISE is currently the only mode supported by both OpenSsl and JDK providers.
                                ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
                                // ACCEPT is currently the only mode supported by both OpenSsl and JDK providers.
                                ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
                                ApplicationProtocolNames.HTTP_2, ApplicationProtocolNames.HTTP_1_1))
                .build();
    } catch (CertificateException e) {
        e.printStackTrace();
    } catch (SSLException e) {
        e.printStackTrace();
    }
    return sslContext;
}

From source file:org.wso2.carbon.transport.http.netty.common.ssl.SSLHandlerFactory.java

License:Open Source License

/**
 * This method will provide netty ssl context which supports HTTP2 over TLS using
 * Application Layer Protocol Negotiation (ALPN)
 *
 * @return instance of {@link SslContext}
 * @throws SSLException if any error occurred during building SSL context.
 *///w  w w .j a  va2  s .  c o m
public SslContext createHttp2TLSContext() throws SSLException {

    // If listener configuration does not include cipher suites , default ciphers required by the HTTP/2
    // specification will be added.
    List<String> ciphers = sslConfig.getCipherSuites() != null && sslConfig.getCipherSuites().length > 0
            ? Arrays.asList(sslConfig.getCipherSuites())
            : Http2SecurityUtil.CIPHERS;
    SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
    return SslContextBuilder.forServer(this.getKeyManagerFactory()).trustManager(this.getTrustStoreFactory())
            .sslProvider(provider).ciphers(ciphers, SupportedCipherSuiteFilter.INSTANCE)
            .clientAuth(needClientAuth ? ClientAuth.REQUIRE : ClientAuth.NONE)
            .applicationProtocolConfig(new ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol.ALPN,
                    // NO_ADVERTISE is currently the only mode supported by both OpenSsl and JDK providers.
                    ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
                    // ACCEPT is currently the only mode supported by both OpenSsl and JDK providers.
                    ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
                    ApplicationProtocolNames.HTTP_2, ApplicationProtocolNames.HTTP_1_1))
            .build();
}

From source file:org.wso2.esb.integration.common.utils.servers.Http2Server.java

License:Open Source License

public void startServer() throws Exception {
    final SslContext sslCtx;
    if (SSL) {/*from   w  ww  . j  a  va 2 s .  c om*/
        SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
        SelfSignedCertificate ssc = new SelfSignedCertificate();
        sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).sslProvider(provider)
                .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
                .applicationProtocolConfig(new ApplicationProtocolConfig(Protocol.ALPN,
                        SelectorFailureBehavior.NO_ADVERTISE, SelectedListenerFailureBehavior.ACCEPT,
                        ApplicationProtocolNames.HTTP_2, ApplicationProtocolNames.HTTP_1_1))
                .build();
    } else {
        sslCtx = null;
    }
    group = new NioEventLoopGroup();
    ServerBootstrap b = new ServerBootstrap();
    b.option(ChannelOption.SO_BACKLOG, 1024);
    b.group(group).channel(NioServerSocketChannel.class).handler(new LoggingHandler(LogLevel.INFO))
            .childHandler(new Http2ServerInitializer(sslCtx));

    b.bind("127.0.0.5", PORT).sync().channel();

}

From source file:org.wyb.smtp.mosmtp.SmtpServer.java

License:Apache License

public static void main(String[] args) throws Exception {
    // Configure SSL.
    final SslContext sslCtx;
    if (SSL) {//from w ww  .j  av  a2s  .c  o m
        SelfSignedCertificate ssc = new SelfSignedCertificate();
        sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
    } else {
        sslCtx = null;
    }

    EventLoopGroup bossGroup = new NioEventLoopGroup(1);
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    try {
        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
                .handler(new LoggingHandler(LogLevel.INFO))
                .childHandler(new SmtpServerInitializer(sslCtx, new DummyMessageHandler()));

        b.bind(PORT).sync().channel().closeFuture().sync();
    } finally {
        bossGroup.shutdownGracefully();
        workerGroup.shutdownGracefully();
    }
}

From source file:org.wyb.sows.server.WebSocketServer.java

License:Apache License

public static void main(String[] args) throws Exception {
    PropertyConfigurator.configure("./config/serverlog.config");
    // Configure SSL.
    final SslContext sslCtx;
    if (SSL) {/*from w  ww  .  j a  v  a 2s  .c o m*/
        SelfSignedCertificate ssc = new SelfSignedCertificate();
        sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
    } else {
        sslCtx = null;
    }

    EventLoopGroup bossGroup = new NioEventLoopGroup(1);
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    try {
        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
                .handler(new LoggingHandler(LogLevel.INFO)).option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000)
                .option(ChannelOption.SO_KEEPALIVE, true)
                .childHandler(new WebSocketServerInitializer(sslCtx, new SimpleAuthHandler()));

        Channel ch = b.bind(PORT).sync().channel();
        logger.info("WebSocketServer is started.");
        ch.closeFuture().sync();
        logger.info("WebSocketServer is closed.");
    } finally {
        bossGroup.shutdownGracefully();
        workerGroup.shutdownGracefully();
        logger.info("EventLoopGroups are shutdown.");
    }
}

From source file:org.wyb.trade.TickCollectServer.java

License:Apache License

public static void main(String[] args) throws Exception {
    String driver = System.getProperty("driver");
    String url = System.getProperty("url");
    String username = System.getProperty("username");
    String password = System.getProperty("password");

    TickDao dao = new DBTickDao(driver, url, username, password);
    try {//w w  w  .  ja v a  2  s  .com
        dao.connect();
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }
    // Configure SSL.
    final SslContext sslCtx;
    if (SSL) {
        SelfSignedCertificate ssc = new SelfSignedCertificate();
        sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
    } else {
        sslCtx = null;
    }

    EventLoopGroup bossGroup = new NioEventLoopGroup(1);
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    try {
        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
                //.handler(new LoggingHandler(LogLevel.INFO))
                .childHandler(new SmtpServerInitializer(sslCtx, new TickMessageHandler(dao)));

        b.bind(PORT).sync().channel().closeFuture().sync();
    } finally {
        bossGroup.shutdownGracefully();
        workerGroup.shutdownGracefully();
        dao.disconnect();
    }
}