io.netty.handler.ssl.OpenSsl.isAlpnSupported()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(12.3k)|赞(0)|评价(0)|浏览(339)

本文整理了Java中io.netty.handler.ssl.OpenSsl.isAlpnSupported()方法的一些代码示例,展示了OpenSsl.isAlpnSupported()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。OpenSsl.isAlpnSupported()方法的具体详情如下:
包路径:io.netty.handler.ssl.OpenSsl
类名称:OpenSsl
方法名:isAlpnSupported

OpenSsl.isAlpnSupported介绍

[英]Returns true if the used version of openssl supports ALPN.
[中]如果使用的openssl版本支持ALPN,则返回true。

代码示例

代码示例来源:origin: eclipse-vertx/vert.x

  1. /**
  2. * @return when alpn support is available via OpenSSL engine
  3. */
  4. public static boolean isAlpnAvailable() {
  5. return OpenSsl.isAlpnSupported();
  6. }

代码示例来源:origin: Netflix/zuul

  1. public static SslProvider chooseSslProvider() {
  2. // Use openssl only if available and has ALPN support (ie. version > 1.0.2).
  3. SslProvider sslProvider;
  4. if (ALLOW_USE_OPENSSL.get() && OpenSsl.isAvailable() && OpenSsl.isAlpnSupported()) {
  5. sslProvider = SslProvider.OPENSSL;
  6. }
  7. else {
  8. sslProvider = SslProvider.JDK;
  9. }
  10. return sslProvider;
  11. }

代码示例来源:origin: googleapis/google-cloud-java

  1. boolean openSslAlpnIsSupported = OpenSsl.isAlpnSupported();
  2. String javaVersion = Runtime.class.getPackage().getImplementationVersion();
  3. String javaSpecificationVersion = System.getProperty("java.specification.version");

代码示例来源:origin: Netflix/zuul

  1. public static SslProvider chooseSslProvider() {
  2. // Use openssl only if available and has ALPN support (ie. version > 1.0.2).
  3. SslProvider sslProvider;
  4. if (ALLOW_USE_OPENSSL.get() && OpenSsl.isAvailable() && OpenSsl.isAlpnSupported()) {
  5. sslProvider = SslProvider.OPENSSL;
  6. }
  7. else {
  8. sslProvider = SslProvider.JDK;
  9. }
  10. return sslProvider;
  11. }

代码示例来源:origin: jooby-project/jooby

  1. static SslContext build(final Config conf) throws IOException, CertificateException {
  2. String tmpdir = conf.getString("application.tmpdir");
  3. boolean http2 = conf.getBoolean("server.http2.enabled");
  4. File keyStoreCert = toFile(conf.getString("ssl.keystore.cert"), tmpdir);
  5. File keyStoreKey = toFile(conf.getString("ssl.keystore.key"), tmpdir);
  6. String keyStorePass = conf.hasPath("ssl.keystore.password")
  7. ? conf.getString("ssl.keystore.password") : null;
  8. SslContextBuilder scb = SslContextBuilder.forServer(keyStoreCert, keyStoreKey, keyStorePass);
  9. if (conf.hasPath("ssl.trust.cert")) {
  10. scb.trustManager(toFile(conf.getString("ssl.trust.cert"), tmpdir))
  11. .clientAuth(ClientAuth.REQUIRE);
  12. }
  13. if (http2) {
  14. SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
  15. return scb.sslProvider(provider)
  16. .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
  17. .applicationProtocolConfig(new ApplicationProtocolConfig(
  18. Protocol.ALPN,
  19. SelectorFailureBehavior.NO_ADVERTISE,
  20. SelectedListenerFailureBehavior.ACCEPT,
  21. Arrays.asList(ApplicationProtocolNames.HTTP_2, ApplicationProtocolNames.HTTP_1_1)))
  22. .build();
  23. }
  24. return scb.build();
  25. }

代码示例来源:origin: alipay/sofa-rpc

  1. if (SSL) {
  2. SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
  3. SelfSignedCertificate ssc = new SelfSignedCertificate();
  4. sslCtx = io.netty.handler.ssl.SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey())

代码示例来源:origin: alipay/sofa-rpc

  1. if (SSL) {
  2. SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
  3. SelfSignedCertificate ssc = new SelfSignedCertificate();
  4. sslCtx = io.netty.handler.ssl.SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey())

代码示例来源:origin: io.vertx/vertx-core

  1. /**
  2. * @return when alpn support is available via OpenSSL engine
  3. */
  4. public static boolean isAlpnAvailable() {
  5. return OpenSsl.isAlpnSupported();
  6. }

代码示例来源:origin: vmware/xenon

  1. private static boolean initializeALPNEnabled() {
  2. String property = XenonConfiguration.string(
  3. NettyChannelContext.class,
  4. "isALPNEnabled",
  5. null);
  6. return (property != null) ? Boolean.parseBoolean(property) : OpenSsl.isAlpnSupported();
  7. }

代码示例来源:origin: com.netflix.zuul/zuul-core

  1. public static SslProvider chooseSslProvider() {
  2. // Use openssl only if available and has ALPN support (ie. version > 1.0.2).
  3. SslProvider sslProvider;
  4. if (ALLOW_USE_OPENSSL.get() && OpenSsl.isAvailable() && OpenSsl.isAlpnSupported()) {
  5. sslProvider = SslProvider.OPENSSL;
  6. }
  7. else {
  8. sslProvider = SslProvider.JDK;
  9. }
  10. return sslProvider;
  11. }

代码示例来源:origin: org.jooby/jooby-netty

  1. static SslContext build(final Config conf) throws IOException, CertificateException {
  2. String tmpdir = conf.getString("application.tmpdir");
  3. boolean http2 = conf.getBoolean("server.http2.enabled");
  4. File keyStoreCert = toFile(conf.getString("ssl.keystore.cert"), tmpdir);
  5. File keyStoreKey = toFile(conf.getString("ssl.keystore.key"), tmpdir);
  6. String keyStorePass = conf.hasPath("ssl.keystore.password")
  7. ? conf.getString("ssl.keystore.password") : null;
  8. SslContextBuilder scb = SslContextBuilder.forServer(keyStoreCert, keyStoreKey, keyStorePass);
  9. if (conf.hasPath("ssl.trust.cert")) {
  10. scb.trustManager(toFile(conf.getString("ssl.trust.cert"), tmpdir))
  11. .clientAuth(ClientAuth.REQUIRE);
  12. }
  13. if (http2) {
  14. SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
  15. return scb.sslProvider(provider)
  16. .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
  17. .applicationProtocolConfig(new ApplicationProtocolConfig(
  18. Protocol.ALPN,
  19. SelectorFailureBehavior.NO_ADVERTISE,
  20. SelectedListenerFailureBehavior.ACCEPT,
  21. Arrays.asList(ApplicationProtocolNames.HTTP_2, ApplicationProtocolNames.HTTP_1_1)))
  22. .build();
  23. }
  24. return scb.build();
  25. }

代码示例来源:origin: org.infinispan/infinispan-server-rest

  1. public BenchmarkHttpClient(String keystorePath, String keystorePassword, String trustStorePath, String trustStorePassword) throws Exception {
  2. if (!OpenSsl.isAlpnSupported()) {
  3. throw new IllegalStateException("OpenSSL is not present, can not test TLS/ALPN support");
  4. }
  5. nettyHttpClient = NettyHttpClient.newHttp2ClientWithALPN(keystorePath, keystorePassword);
  6. SslContextFactory sslContextFactory = new SslContextFactory();
  7. sslContextFactory.setTrustStorePassword(trustStorePath);
  8. sslContextFactory.setTrustStorePassword(trustStorePassword);
  9. sslContextFactory.setKeyStorePath(keystorePath);
  10. sslContextFactory.setKeyStorePassword(keystorePassword);
  11. http1Client = new HttpClient(sslContextFactory);
  12. usesTLS = true;
  13. }

代码示例来源:origin: org.infinispan/infinispan-server-rest

  1. public static SslContext createTruststoreContext(String truststore, char[] password, String... alpnProtocols) throws Exception {
  2. KeyStore ks = KeyStore.getInstance("JKS");
  3. ks.load(new FileInputStream(truststore), password);
  4. KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
  5. kmf.init(ks, password);
  6. SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
  7. return SslContextBuilder.forClient()
  8. .sslProvider(provider)
  9. .keyManager(kmf)
  10. .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
  11. .trustManager(InsecureTrustManagerFactory.INSTANCE)
  12. .applicationProtocolConfig(new ApplicationProtocolConfig(
  13. ApplicationProtocolConfig.Protocol.ALPN,
  14. ApplicationProtocolConfig.SelectorFailureBehavior.CHOOSE_MY_LAST_PROTOCOL,
  15. ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
  16. alpnProtocols))
  17. .build();
  18. }

代码示例来源:origin: reactor/reactor-netty

  1. void updateDefaultConfiguration() {
  2. switch (type) {
  3. case H2:
  4. sslContextBuilder.sslProvider(
  5. OpenSsl.isAlpnSupported() ?
  6. io.netty.handler.ssl.SslProvider.OPENSSL :
  7. io.netty.handler.ssl.SslProvider.JDK)
  8. .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
  9. .applicationProtocolConfig(new ApplicationProtocolConfig(
  10. ApplicationProtocolConfig.Protocol.ALPN,
  11. ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
  12. ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
  13. ApplicationProtocolNames.HTTP_2,
  14. ApplicationProtocolNames.HTTP_1_1));
  15. break;
  16. case TCP:
  17. sslContextBuilder.sslProvider(
  18. OpenSsl.isAvailable() ?
  19. io.netty.handler.ssl.SslProvider.OPENSSL :
  20. io.netty.handler.ssl.SslProvider.JDK);
  21. break;
  22. case NONE:
  23. break; //no default configuration
  24. }
  25. }

代码示例来源:origin: io.projectreactor.netty/reactor-netty

  1. void updateDefaultConfiguration() {
  2. switch (type) {
  3. case H2:
  4. sslContextBuilder.sslProvider(
  5. OpenSsl.isAlpnSupported() ?
  6. io.netty.handler.ssl.SslProvider.OPENSSL :
  7. io.netty.handler.ssl.SslProvider.JDK)
  8. .ciphers(Http2SecurityUtil.CIPHERS, SupportedCipherSuiteFilter.INSTANCE)
  9. .applicationProtocolConfig(new ApplicationProtocolConfig(
  10. ApplicationProtocolConfig.Protocol.ALPN,
  11. ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
  12. ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
  13. ApplicationProtocolNames.HTTP_2,
  14. ApplicationProtocolNames.HTTP_1_1));
  15. break;
  16. case TCP:
  17. sslContextBuilder.sslProvider(
  18. OpenSsl.isAvailable() ?
  19. io.netty.handler.ssl.SslProvider.OPENSSL :
  20. io.netty.handler.ssl.SslProvider.JDK);
  21. break;
  22. case NONE:
  23. break; //no default configuration
  24. }
  25. }

代码示例来源:origin: org.wso2.carbon.transport/org.wso2.carbon.transport.http.netty

  1. /**
  2. * This method will provide netty ssl context which supports HTTP2 over TLS using
  3. * Application Layer Protocol Negotiation (ALPN)
  4. *
  5. * @return instance of {@link SslContext}
  6. * @throws SSLException if any error occurred during building SSL context.
  7. */
  8. public SslContext createHttp2TLSContext() throws SSLException {
  9. // If listener configuration does not include cipher suites , default ciphers required by the HTTP/2
  10. // specification will be added.
  11. List<String> ciphers = sslConfig.getCipherSuites() != null && sslConfig.getCipherSuites().length > 0 ? Arrays
  12. .asList(sslConfig.getCipherSuites()) : Http2SecurityUtil.CIPHERS;
  13. SslProvider provider = OpenSsl.isAlpnSupported() ? SslProvider.OPENSSL : SslProvider.JDK;
  14. return SslContextBuilder.forServer(this.getKeyManagerFactory())
  15. .trustManager(this.getTrustStoreFactory())
  16. .sslProvider(provider)
  17. .ciphers(ciphers,
  18. SupportedCipherSuiteFilter.INSTANCE)
  19. .clientAuth(needClientAuth ? ClientAuth.REQUIRE : ClientAuth.NONE)
  20. .applicationProtocolConfig(new ApplicationProtocolConfig(
  21. ApplicationProtocolConfig.Protocol.ALPN,
  22. // NO_ADVERTISE is currently the only mode supported by both OpenSsl and JDK providers.
  23. ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
  24. // ACCEPT is currently the only mode supported by both OpenSsl and JDK providers.
  25. ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
  26. ApplicationProtocolNames.HTTP_2,
  27. ApplicationProtocolNames.HTTP_1_1)).build();
  28. }

代码示例来源:origin: reactor/reactor-netty

  1. @Test
  2. public void testSslConfigurationProtocolH2_1() {
  3. DisposableServer disposableServer =
  4. server.secure(spec -> spec.sslContext(builder))
  5. .protocol(HttpProtocol.H2)
  6. .bindNow();
  7. assertEquals(2, protocols.size());
  8. assertTrue(protocols.contains("h2"));
  9. assertTrue(OpenSsl.isAlpnSupported() ? sslContext instanceof OpenSslContext :
  10. sslContext instanceof JdkSslContext);
  11. disposableServer.disposeNow();
  12. }

代码示例来源:origin: reactor/reactor-netty

  1. @Test
  2. public void testProtocolH2SslConfiguration() {
  3. DisposableServer disposableServer =
  4. server.protocol(HttpProtocol.H2)
  5. .secure(spec -> spec.sslContext(builder))
  6. .bindNow();
  7. assertEquals(2, protocols.size());
  8. assertTrue(protocols.contains("h2"));
  9. assertTrue(OpenSsl.isAlpnSupported() ? sslContext instanceof OpenSslContext :
  10. sslContext instanceof JdkSslContext);
  11. disposableServer.disposeNow();
  12. }

代码示例来源:origin: reactor/reactor-netty

  1. @Test
  2. public void testSslConfigurationProtocolH2_2() {
  3. DisposableServer disposableServer =
  4. server.protocol(HttpProtocol.HTTP11)
  5. .secure(spec -> spec.sslContext(builder))
  6. .protocol(HttpProtocol.H2)
  7. .bindNow();
  8. assertEquals(2, protocols.size());
  9. assertTrue(protocols.contains("h2"));
  10. assertTrue(OpenSsl.isAlpnSupported() ? sslContext instanceof OpenSslContext :
  11. sslContext instanceof JdkSslContext);
  12. disposableServer.disposeNow();
  13. }
  14. }

代码示例来源:origin: org.infinispan/infinispan-server-rest

  1. @Test
  2. public void shouldUpgradeUsingALPN() throws Exception {
  3. SkipTestNG.skipSinceJDK(10); // TODO: OpenSSL ALPN doesn't seem to work. Restructure the test to use internal JDK ALPN
  4. if (!OpenSsl.isAlpnSupported()) {
  5. throw new IllegalStateException("OpenSSL is not present, can not test TLS/ALPN support. Version: " + OpenSsl.versionString() + " Cause: " + OpenSsl.unavailabilityCause());
  6. }
  7. //given
  8. restServer = RestServerHelper.defaultRestServer("http2testcache")
  9. .withKeyStore(KEY_STORE_PATH, "secret", "pkcs12")
  10. .start(TestResourceTracker.getCurrentTestShortName());
  11. client = NettyHttpClient.newHttp2ClientWithALPN(KEY_STORE_PATH, "secret");
  12. client.start(restServer.getHost(), restServer.getPort());
  13. FullHttpRequest putValueInCacheRequest = new DefaultFullHttpRequest(HTTP_1_1, POST, "/rest/http2testcache/test",
  14. wrappedBuffer("test".getBytes(CharsetUtil.UTF_8)));
  15. //when
  16. client.sendRequest(putValueInCacheRequest);
  17. Queue<FullHttpResponse> responses = client.getResponses();
  18. //then
  19. Assertions.assertThat(responses).hasSize(1);
  20. Assertions.assertThat(responses.element().status().code()).isEqualTo(200);
  21. Assertions.assertThat(restServer.getCacheManager().getCache("http2testcache").size()).isEqualTo(1);
  22. }

相关文章