reactor.netty.http.server.HttpServer.secure()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(11.2k)|赞(0)|评价(0)|浏览(152)

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

HttpServer.secure介绍

[英]Apply an SSL configuration customization via the passed builder. The builder will produce the SslContext to be passed to with a default value of 10 seconds handshake timeout unless the environment property reactor.netty.tcp.sslHandshakeTimeout is set. If SelfSignedCertificate needs to be used, the sample below can be used. Note that SelfSignedCertificate should not be used in production.

SelfSignedCertificate cert = new SelfSignedCertificate();

[中]通过传递的生成器应用SSL配置自定义。构建器将生成要传递给的SslContext,默认值为10秒握手超时,除非环境属性为reactor。内蒂。tcp。已设置sslHandshakeTimeout。如果需要使用自签名证书,可以使用下面的示例。请注意,生产中不应使用自签名证书

SelfSignedCertificate cert = new SelfSignedCertificate();

代码示例

代码示例来源:origin: org.springframework.boot/spring-boot

@Override
public HttpServer apply(HttpServer server) {
  try {
    return server.secure((contextSpec) -> {
      SslProvider.DefaultConfigurationSpec spec = contextSpec
          .sslContext(getContextBuilder());
      if (this.http2 != null && this.http2.isEnabled()) {
        spec.defaultConfiguration(SslProvider.DefaultConfigurationType.H2);
      }
    });
  }
  catch (Exception ex) {
    throw new IllegalStateException(ex);
  }
}

代码示例来源:origin: spring-projects/spring-framework

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

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

@Test(expected = IllegalArgumentException.class)
  public void testIssue387() {
    HttpServer.create()
         .secure(sslContextSpec -> System.out.println())
         .bindNow();
  }
}

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

@Override
protected HttpServer customizeServerOptions(HttpServer server) {
  try {
    SslContext ctx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
    return server.secure(ssl -> ssl.sslContext(ctx));
  }
  catch (SSLException e) {
    throw new RuntimeException(e);
  }
}

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

@Test
public void testSslConfigurationProtocolH2_1() {
  DisposableServer disposableServer =
      server.secure(spec -> spec.sslContext(builder))
         .protocol(HttpProtocol.H2)
         .bindNow();
  assertEquals(2, protocols.size());
  assertTrue(protocols.contains("h2"));
  assertTrue(OpenSsl.isAlpnSupported() ? sslContext instanceof OpenSslContext :
                      sslContext instanceof JdkSslContext);
  disposableServer.disposeNow();
}

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

@Test
public void testProtocolH2SslConfiguration() {
  DisposableServer disposableServer =
      server.protocol(HttpProtocol.H2)
         .secure(spec -> spec.sslContext(builder))
         .bindNow();
  assertEquals(2, protocols.size());
  assertTrue(protocols.contains("h2"));
  assertTrue(OpenSsl.isAlpnSupported() ? sslContext instanceof OpenSslContext :
                      sslContext instanceof JdkSslContext);
  disposableServer.disposeNow();
}

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

@Test
public void testProtocolHttp11SslConfiguration() {
  DisposableServer disposableServer =
      server.protocol(HttpProtocol.HTTP11)
         .secure(spec -> spec.sslContext(builder))
         .bindNow();
  assertTrue(protocols.isEmpty());
  assertTrue(OpenSsl.isAvailable() ? sslContext instanceof OpenSslContext :
                    sslContext instanceof JdkSslContext);
  disposableServer.disposeNow();
}

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

@Test
public void testSslConfigurationProtocolHttp11_1() {
  DisposableServer disposableServer =
      server.secure(spec -> spec.sslContext(builder))
         .protocol(HttpProtocol.HTTP11)
         .bindNow();
  assertTrue(protocols.isEmpty());
  assertTrue(OpenSsl.isAvailable() ? sslContext instanceof OpenSslContext :
                    sslContext instanceof JdkSslContext);
  disposableServer.disposeNow();
}

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

@Test
  public void testSslConfigurationProtocolH2_2() {
    DisposableServer disposableServer =
        server.protocol(HttpProtocol.HTTP11)
           .secure(spec -> spec.sslContext(builder))
           .protocol(HttpProtocol.H2)
           .bindNow();
    assertEquals(2, protocols.size());
    assertTrue(protocols.contains("h2"));
    assertTrue(OpenSsl.isAlpnSupported() ? sslContext instanceof OpenSslContext :
                        sslContext instanceof JdkSslContext);
    disposableServer.disposeNow();
  }
}

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

@Test
public void testSslConfigurationProtocolHttp11_2() {
  DisposableServer disposableServer =
      server.protocol(HttpProtocol.H2)
         .secure(spec -> spec.sslContext(builder))
         .protocol(HttpProtocol.HTTP11)
         .bindNow();
  assertTrue(protocols.isEmpty());
  assertTrue(OpenSsl.isAvailable() ? sslContext instanceof OpenSslContext :
                    sslContext instanceof JdkSslContext);
  disposableServer.disposeNow();
}

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

@Test
@Ignore
public void testHttpSsl() throws Exception {
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  DisposableServer server =
      HttpServer.create()
           .port(8080)
           .secure(sslContextSpec -> sslContextSpec.sslContext(serverOptions))
           .handle((req, res) -> res.sendString(Mono.just("Hello")))
           .wiretap(true)
           .bindNow();
  new CountDownLatch(1).await();
  server.disposeNow();
}

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

@Test
@Ignore
public void testH2OrH1Secure() throws Exception {
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  DisposableServer server =
      HttpServer.create()
           .protocol(HttpProtocol.H2, HttpProtocol.HTTP11)
           .secure(ssl -> ssl.sslContext(serverOptions))
           .port(8080)
           .handle((req, res) -> res.sendString(Mono.just("Hello")))
           .wiretap(true)
           .bindNow();
  new CountDownLatch(1).await();
  server.disposeNow();
}

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

@Test
@Ignore
public void testH2Secure() throws Exception {
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  DisposableServer server =
      HttpServer.create()
           .protocol(HttpProtocol.H2)
           .secure(ssl -> ssl.sslContext(serverOptions))
           .port(8080)
           .handle((req, res) -> res.sendString(Mono.just("Hello")))
           .wiretap(true)
           .bindNow();
  new CountDownLatch(1).await();
  server.disposeNow();
}

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

@Test
@Ignore
public void testHttp1or2Secure() throws Exception {
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  DisposableServer server =
      HttpServer.create()
           .protocol(HttpProtocol.H2, HttpProtocol.HTTP11)
           .secure(ssl -> ssl.sslContext(serverOptions))
           .port(8080)
           .handle((req, res) -> res.sendString(Mono.just("Hello")))
           .wiretap(true)
           .bindNow();
  new CountDownLatch(1).await();
  server.disposeNow();
}

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

@Test
public void sslExchangeRelativeGet() throws CertificateException, SSLException {
  SelfSignedCertificate ssc = new SelfSignedCertificate();
  SslContext sslServer = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey())
                      .build();
  SslContext sslClient = SslContextBuilder.forClient()
                      .trustManager(InsecureTrustManagerFactory.INSTANCE)
                      .build();
  DisposableServer context =
      HttpServer.create()
           .secure(ssl -> ssl.sslContext(sslServer))
           .handle((req, resp) -> resp.sendString(Flux.just("hello ", req.uri())))
           .wiretap(true)
           .bindNow();
  String responseString =
      createHttpClientForContextWithAddress(context)
           .secure(ssl -> ssl.sslContext(sslClient))
           .get()
           .uri("/foo")
           .responseSingle((res, buf) -> buf.asString(CharsetUtil.UTF_8))
           .block(Duration.ofMillis(200));
  context.disposeNow();
  assertThat(responseString).isEqualTo("hello /foo");
}

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

@Test
public void sslExchangeAbsoluteGet() throws CertificateException, SSLException {
  SelfSignedCertificate ssc = new SelfSignedCertificate();
  SslContext sslServer = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
  SslContext sslClient = SslContextBuilder.forClient()
                      .trustManager(InsecureTrustManagerFactory.INSTANCE).build();
  DisposableServer context =
      HttpServer.create()
           .secure(ssl -> ssl.sslContext(sslServer))
           .handle((req, resp) -> resp.sendString(Flux.just("hello ", req.uri())))
           .wiretap(true)
           .bindNow();
  String responseString = createHttpClientForContextWithAddress(context)
                  .secure(ssl -> ssl.sslContext(sslClient))
                  .get()
                  .uri("/foo")
                  .responseSingle((res, buf) -> buf.asString(CharsetUtil.UTF_8))
                  .block();
  context.disposeNow();
  assertThat(responseString).isEqualTo("hello /foo");
}

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

@Test
public void testHttpSslH2CFails()  throws Exception {
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  StepVerifier.create(
    HttpServer.create()
         .protocol(HttpProtocol.H2C)
         .secure(ssl -> ssl.sslContext(serverOptions))
         .handle((req, res) -> res.sendString(Mono.just("Hello")))
         .wiretap(true)
         .bind()
  ).verifyErrorMessage("Configured H2 Clear-Text protocol with TLS. Use the non clear-text h2 protocol via HttpServer#protocol or disable TLS via HttpServer#tcpConfiguration(tcp -> tcp.noSSL())");
}

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

@Test
@Ignore
public void testIssue395() throws Exception {
  BiFunction<HttpServerRequest, HttpServerResponse, Mono<Void>> echoHandler =
      (req, res) -> res.send(req.receive().map(ByteBuf::retain)).then();
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  DisposableServer server =
      HttpServer.create()
           .secure(ssl -> ssl.sslContext(serverOptions))
           .protocol(HttpProtocol.H2)
           .handle(echoHandler)
           .port(8080)
           .wiretap(true)
           .bindNow();
  new CountDownLatch(1).await();
  server.disposeNow();
}

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

@Test
public void testIssue473() throws Exception {
  SelfSignedCertificate cert = new SelfSignedCertificate();
  SslContextBuilder serverSslContextBuilder =
      SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
  DisposableServer server =
      HttpServer.create()
           .port(0)
           .wiretap(true)
           .secure(spec -> spec.sslContext(serverSslContextBuilder))
           .bindNow();
  StepVerifier.create(
      HttpClient.create(ConnectionProvider.newConnection())
           .secure()
           .websocket()
           .uri("wss://" + server.host() + ":" + server.port())
           .handle((in, out) -> Mono.empty()))
        .expectErrorMatches(t -> t.getCause() instanceof CertificateException)
      .verify(Duration.ofSeconds(30));
  server.disposeNow();
}

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

@Test
//    @Ignore
  public void testHttpToHttp2Ssl() throws Exception {
    SelfSignedCertificate cert = new SelfSignedCertificate();
    SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());
    DisposableServer server =
        HttpServer.create()
             .secure(sslContextSpec -> sslContextSpec.sslContext(serverOptions)
                                 .defaultConfiguration(SslProvider.DefaultConfigurationType.H2))
             .handle((req, res) -> res.sendString(Mono.just("Hello")))
             .wiretap(true)
             .bindNow();

    String response =
        HttpClient.create()
             .port(server.port())
             .secure(ssl -> ssl.sslContext(
                 SslContextBuilder.forClient()
                          .trustManager(InsecureTrustManagerFactory.INSTANCE)))
             .wiretap(true)
             .get()
             .uri("/")
             .responseContent()
             .aggregate()
             .asString()
             .block(Duration.ofSeconds(30));

    server.disposeNow();
  }

相关文章