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

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

Introduction

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

Prototype

public static int version() 

Source Link

Document

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

Usage

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  ww w  .j a  v a  2  s .  c om*/
    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.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./*w  w w .j  a v  a 2s. 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;/* w  w  w. j av  a  2s  . c om*/
    }

    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);
}