Example usage for io.netty.handler.ssl OpenSsl versionString

List of usage examples for io.netty.handler.ssl OpenSsl versionString

Introduction

In this page you can find the example usage for io.netty.handler.ssl OpenSsl versionString.

Prototype

public static String versionString() 

Source Link

Document

Returns the version string of the used available OpenSSL library or null if #isAvailable() returns false .

Usage

From source file:com.floragunn.searchguard.ssl.DefaultSearchGuardKeyStore.java

License:Apache License

private void logOpenSSLInfos() {
    if (OpenSsl.isAvailable()) {
        log.info("Open SSL " + OpenSsl.versionString() + " available");
        log.debug("Open SSL available ciphers " + OpenSsl.availableCipherSuites());
    } else {//  w  ww .ja  va  2s. co  m
        log.info(
                "Open SSL not available (this is not an error, we simply fallback to built-in JDK SSL) because of "
                        + OpenSsl.unavailabilityCause());
    }
}

From source file:com.floragunn.searchguard.ssl.rest.SearchGuardSSLInfoAction.java

License:Apache License

@Override
protected void handleRequest(final RestRequest request, final RestChannel channel, final Client client)
        throws Exception {

    BytesRestResponse response = null;//from w w  w  . j a va2  s.  c o m
    XContentBuilder builder = channel.newBuilder();

    try {

        final X509Certificate[] certs = request.getFromContext("_sg_ssl_peer_certificates");
        builder.startObject();

        builder.field("principal", (String) request.getFromContext("_sg_ssl_principal"));
        builder.field("peer_certificates", certs != null && certs.length > 0 ? certs.length + "" : "0");
        builder.field("ssl_protocol", (String) request.getFromContext("_sg_ssl_protocol"));
        builder.field("ssl_cipher", (String) request.getFromContext("_sg_ssl_cipher"));
        builder.field("ssl_openssl_available", OpenSsl.isAvailable());
        builder.field("ssl_openssl_version", OpenSsl.version());
        builder.field("ssl_openssl_version_string", OpenSsl.versionString());
        Throwable openSslUnavailCause = OpenSsl.unavailabilityCause();
        builder.field("ssl_openssl_non_available_cause",
                openSslUnavailCause == null ? "" : openSslUnavailCause.toString());
        builder.field("ssl_provider_http", sgks.getHTTPProviderName());
        builder.field("ssl_provider_transport_server", sgks.getTransportServerProviderName());
        builder.field("ssl_provider_transport_client", sgks.getTransportClientProviderName());
        builder.endObject();

        response = new BytesRestResponse(RestStatus.OK, builder);
    } catch (final Exception e1) {
        logger.error("Error handle request " + e1, e1);
        builder = channel.newBuilder();
        builder.startObject();
        builder.field("error", e1.toString());
        builder.endObject();
        response = new BytesRestResponse(RestStatus.INTERNAL_SERVER_ERROR, builder);
    }

    channel.sendResponse(response);
}

From source file:com.github.ibole.microservice.rpc.client.grpc.GrpcClientInitializer.java

License:Apache License

private synchronized static SslContext createSslContext() throws SSLException {
    if (sslBuilder == null) {
        sslBuilder = GrpcSslContexts.forClient().ciphers(null);
        // gRPC uses tcnative / OpenSsl by default, if it's available. It defaults to alpn-boot
        // if tcnative is not in the classpath.
        if (OpenSsl.isAvailable()) {
            LOG.info("SslContext: gRPC is using the OpenSSL provider (tcnactive jar - Open Ssl version: {})",
                    OpenSsl.versionString());
        } else {/*from w  w w.j  a va  2 s .  c o m*/
            if (isJettyAlpnConfigured()) {
                // gRPC uses jetty ALPN as a backup to tcnative.
                LOG.info("SslContext: gRPC is using the JDK provider (alpn-boot jar)");
            } else {
                LOG.info("SslContext: gRPC cannot be configured.  Neither OpenSsl nor Alpn are available.");
            }
        }
    }
    return sslBuilder.build();
}

From source file:com.google.cloud.bigtable.grpc.BigtableSession.java

License:Open Source License

private synchronized static SslContext createSslContext() throws SSLException {
    if (sslBuilder == null) {
        sslBuilder = GrpcSslContexts.forClient().ciphers(null);
        // gRPC uses tcnative / OpenSsl by default, if it's available.  It defaults to alpn-boot
        // if tcnative is not in the classpath.
        if (OpenSsl.isAvailable()) {
            LOG.info("gRPC is using the OpenSSL provider (tcnactive jar - Open Ssl version: %s)",
                    OpenSsl.versionString());
        } else {//from www  . j a va  2s.co  m
            if (isJettyAlpnConfigured()) {
                // gRPC uses jetty ALPN as a backup to tcnative.
                LOG.info("gRPC is using the JDK provider (alpn-boot jar)");
            } else {
                LOG.info("gRPC cannot be configured.  Neither OpenSsl nor Alpn are available.");
            }
        }
    }
    return sslBuilder.build();
}

From source file:com.linecorp.armeria.common.util.NativeLibraries.java

License:Apache License

/**
 * Logs the availability of the native libraries used by Armeria. This method does nothing if it was
 * called once before.//from w w  w  .ja  va2  s . c o  m
 */
public static void report() {
    if (!reported.compareAndSet(false, true)) {
        return;
    }

    if (USE_EPOLL) {
        logger.info("/dev/epoll: "
                + (Epoll.isAvailable() ? "yes" : "no (" + filterCause(Epoll.unavailabilityCause()) + ')'));
    } else {
        logger.info("/dev/epoll: disabled");
    }

    if (USE_OPENSSL) {
        logger.info("OpenSSL: "
                + (OpenSsl.isAvailable() ? "yes (" + OpenSsl.versionString() + ", " + OpenSsl.version() + ')'
                        : "no (" + filterCause(OpenSsl.unavailabilityCause()) + ')'));
    } else {
        logger.info("OpenSSL: disabled");
    }
}

From source file:io.grpc.netty.ProtocolNegotiators.java

License:Apache License

@VisibleForTesting
static void logSslEngineDetails(Level level, ChannelHandlerContext ctx, String msg, @Nullable Throwable t) {
    if (!log.isLoggable(level)) {
        return;//from  w  ww  .  ja  v a2  s  .  co m
    }

    SslHandler sslHandler = ctx.pipeline().get(SslHandler.class);
    SSLEngine engine = sslHandler.engine();

    StringBuilder builder = new StringBuilder(msg);
    builder.append("\nSSLEngine Details: [\n");
    if (engine instanceof OpenSslEngine) {
        builder.append("    OpenSSL, ");
        builder.append("Version: 0x").append(Integer.toHexString(OpenSsl.version()));
        builder.append(" (").append(OpenSsl.versionString()).append("), ");
        builder.append("ALPN supported: ").append(OpenSsl.isAlpnSupported());
    } else if (JettyTlsUtil.isJettyAlpnConfigured()) {
        builder.append("    Jetty ALPN");
    } else if (JettyTlsUtil.isJettyNpnConfigured()) {
        builder.append("    Jetty NPN");
    } else if (JettyTlsUtil.isJava9AlpnAvailable()) {
        builder.append("    JDK9 ALPN");
    }
    builder.append("\n    TLS Protocol: ");
    builder.append(engine.getSession().getProtocol());
    builder.append("\n    Application Protocol: ");
    builder.append(sslHandler.applicationProtocol());
    builder.append("\n    Need Client Auth: ");
    builder.append(engine.getNeedClientAuth());
    builder.append("\n    Want Client Auth: ");
    builder.append(engine.getWantClientAuth());
    builder.append("\n    Supported protocols=");
    builder.append(Arrays.toString(engine.getSupportedProtocols()));
    builder.append("\n    Enabled protocols=");
    builder.append(Arrays.toString(engine.getEnabledProtocols()));
    builder.append("\n    Supported ciphers=");
    builder.append(Arrays.toString(engine.getSupportedCipherSuites()));
    builder.append("\n    Enabled ciphers=");
    builder.append(Arrays.toString(engine.getEnabledCipherSuites()));
    builder.append("\n]");

    log.log(level, builder.toString(), t);
}

From source file:org.infinispan.rest.Http2Test.java

License:Apache License

@Test
public void shouldUpgradeUsingALPN() throws Exception {
    SkipTestNG.skipSinceJDK(10); // TODO: OpenSSL ALPN doesn't seem to work. Restructure the test to use internal JDK ALPN
    if (!OpenSsl.isAlpnSupported()) {
        throw new IllegalStateException("OpenSSL is not present, can not test TLS/ALPN support. Version: "
                + OpenSsl.versionString() + " Cause: " + OpenSsl.unavailabilityCause());
    }//from ww  w . j  a  va 2  s  . com

    //given
    restServer = RestServerHelper.defaultRestServer("http2testcache")
            .withKeyStore(KEY_STORE_PATH, "secret", "pkcs12")
            .start(TestResourceTracker.getCurrentTestShortName());

    client = NettyHttpClient.newHttp2ClientWithALPN(KEY_STORE_PATH, "secret");
    client.start(restServer.getHost(), restServer.getPort());

    FullHttpRequest putValueInCacheRequest = new DefaultFullHttpRequest(HTTP_1_1, POST,
            "/rest/http2testcache/test", wrappedBuffer("test".getBytes(CharsetUtil.UTF_8)));

    //when
    client.sendRequest(putValueInCacheRequest);
    Queue<FullHttpResponse> responses = client.getResponses();

    //then
    Assertions.assertThat(responses).hasSize(1);
    Assertions.assertThat(responses.element().status().code()).isEqualTo(200);
    Assertions.assertThat(restServer.getCacheManager().getCache("http2testcache").size()).isEqualTo(1);
}