use of org.apache.flink.shaded.netty4.io.netty.handler.ssl.SslContext in project ballerina by ballerina-lang.
the class InitEndpoint method execute.
@Override
public void execute(Context context) {
try {
Struct clientEndpoint = BLangConnectorSPIUtil.getConnectorEndpointStruct(context);
// Creating client endpoint with channel as native data.
Struct endpointConfig = clientEndpoint.getStructField(EndpointConstants.ENDPOINT_CONFIG);
EndpointConfiguration configuration = EndpointUtils.getEndpointConfiguration(endpointConfig);
ManagedChannel channel;
if (configuration.getSslConfig() == null) {
channel = ManagedChannelBuilder.forAddress(configuration.getHost(), configuration.getPort()).usePlaintext(true).build();
} else {
SslContext sslContext = new SSLHandlerFactory(configuration.getSslConfig()).createHttp2TLSContextForClient();
channel = NettyChannelBuilder.forAddress(generateSocketAddress(configuration.getHost(), configuration.getPort())).flowControlWindow(65 * 1024).maxInboundMessageSize(MAX_MESSAGE_SIZE).sslContext(sslContext).build();
}
clientEndpoint.addNativeData(CHANNEL_KEY, channel);
} catch (Throwable throwable) {
BStruct errorStruct = MessageUtils.getConnectorError(context, throwable);
context.setError(errorStruct);
}
}
use of org.apache.flink.shaded.netty4.io.netty.handler.ssl.SslContext in project reactor-netty by reactor.
the class TcpServerTests method sendFileSecure.
@Test
public void sendFileSecure() throws CertificateException, SSLException, InterruptedException, URISyntaxException {
Path largeFile = Paths.get(getClass().getResource("/largeFile.txt").toURI());
SelfSignedCertificate ssc = new SelfSignedCertificate();
SslContext sslServer = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
SslContext sslClient = SslContextBuilder.forClient().trustManager(ssc.cert()).build();
NettyContext context = TcpServer.create(opt -> opt.sslContext(sslServer)).newHandler((in, out) -> in.receive().asString().flatMap(word -> "GOGOGO".equals(word) ? out.sendFile(largeFile).then() : out.sendString(Mono.just("NOPE")))).block();
MonoProcessor<String> m1 = MonoProcessor.create();
MonoProcessor<String> m2 = MonoProcessor.create();
NettyContext client1 = TcpClient.create(opt -> opt.port(context.address().getPort()).sslContext(sslClient)).newHandler((in, out) -> {
in.receive().asString().log("-----------------CLIENT1").subscribe(m1::onNext);
return out.sendString(Mono.just("gogogo")).neverComplete();
}).block();
NettyContext client2 = TcpClient.create(opt -> opt.port(context.address().getPort()).sslContext(sslClient)).newHandler((in, out) -> {
in.receive().asString(StandardCharsets.UTF_8).take(2).reduceWith(String::new, String::concat).log("-----------------CLIENT2").subscribe(m2::onNext);
return out.sendString(Mono.just("GOGOGO")).neverComplete();
}).block();
String client1Response = m1.block();
String client2Response = m2.block();
client1.dispose();
client1.onClose().block();
client2.dispose();
client2.onClose().block();
context.dispose();
context.onClose().block();
Assertions.assertThat(client1Response).isEqualTo("NOPE");
Assertions.assertThat(client2Response).startsWith("This is an UTF-8 file that is larger than 1024 bytes. " + "It contains accents like é.").contains("1024 mark here ->").contains("<- 1024 mark here").endsWith("End of File");
}
use of org.apache.flink.shaded.netty4.io.netty.handler.ssl.SslContext in project reactor-netty by reactor.
the class HttpServerTests method sendFileSecure.
@Test
public void sendFileSecure() throws CertificateException, SSLException, URISyntaxException {
Path largeFile = Paths.get(getClass().getResource("/largeFile.txt").toURI());
SelfSignedCertificate ssc = new SelfSignedCertificate();
SslContext sslServer = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
SslContext sslClient = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
NettyContext context = HttpServer.create(opt -> opt.sslContext(sslServer)).newHandler((req, resp) -> resp.sendFile(largeFile)).block();
HttpClientResponse response = HttpClient.create(opt -> opt.port(context.address().getPort()).sslContext(sslClient)).get("/foo").block(Duration.ofSeconds(120));
context.dispose();
context.onClose().block();
String body = response.receive().aggregate().asString(StandardCharsets.UTF_8).block();
assertThat(body).startsWith("This is an UTF-8 file that is larger than 1024 bytes. " + "It contains accents like é.").contains("1024 mark here -><- 1024 mark here").endsWith("End of File");
}
use of org.apache.flink.shaded.netty4.io.netty.handler.ssl.SslContext in project reactor-netty by reactor.
the class HttpClientTest method sshExchangeAbsoluteGet.
@Test
public void sshExchangeAbsoluteGet() throws CertificateException, SSLException {
SelfSignedCertificate ssc = new SelfSignedCertificate();
SslContext sslServer = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
SslContext sslClient = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
NettyContext context = HttpServer.create(opt -> opt.sslContext(sslServer)).newHandler((req, resp) -> resp.sendString(Flux.just("hello ", req.uri()))).block();
HttpClientResponse response = HttpClient.create(opt -> applyHostAndPortFromContext(opt, context).sslContext(sslClient)).get("/foo").block();
context.dispose();
context.onClose().block();
String responseString = response.receive().aggregate().asString(CharsetUtil.UTF_8).block();
assertThat(responseString).isEqualTo("hello /foo");
}
use of org.apache.flink.shaded.netty4.io.netty.handler.ssl.SslContext in project reactor-netty by reactor.
the class ByteBufFluxTest method doTestByteBufFluxFromPath.
private void doTestByteBufFluxFromPath(boolean withSecurity) throws Exception {
Consumer<HttpServerOptions.Builder> serverOptions;
Consumer<HttpClientOptions.Builder> clientOptions;
final int serverPort = SocketUtils.findAvailableTcpPort();
if (withSecurity) {
SelfSignedCertificate ssc = new SelfSignedCertificate();
SslContext sslServer = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
SslContext sslClient = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
serverOptions = ops -> ops.port(serverPort).sslContext(sslServer);
clientOptions = ops -> ops.port(serverPort).sslContext(sslClient);
} else {
serverOptions = ops -> ops.port(serverPort);
clientOptions = ops -> ops.port(serverPort);
}
Path path = Paths.get(getClass().getResource("/largeFile.txt").toURI());
HttpServer.create(serverOptions).newHandler((req, res) -> res.send(ByteBufFlux.fromPath(path)).then()).block(Duration.ofSeconds(30));
AtomicLong counter = new AtomicLong(0);
HttpClient.create(clientOptions).get("/download").flatMapMany(NettyInbound::receive).doOnNext(b -> counter.addAndGet(b.readableBytes())).blockLast(Duration.ofSeconds(30));
assertTrue(counter.get() == 1245);
}
Aggregations