Add SSL support
This commit is contained in:
parent
2cbea83c02
commit
927a295add
@ -66,6 +66,6 @@ public class HttpClient
|
||||
}
|
||||
};
|
||||
|
||||
new Bootstrap().channel( NioSocketChannel.class ).group( eventLoop ).handler( new HttpInitializer( url, port, ssl ) ).remoteAddress( uri.getHost(), port ).connect().addListener( future );
|
||||
new Bootstrap().channel( NioSocketChannel.class ).group( eventLoop ).handler( new HttpInitializer( ssl ) ).remoteAddress( uri.getHost(), port ).connect().addListener( future );
|
||||
}
|
||||
}
|
||||
|
@ -6,14 +6,13 @@ import io.netty.handler.codec.http.HttpClientCodec;
|
||||
import io.netty.handler.ssl.SslHandler;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLEngine;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class HttpInitializer extends ChannelInitializer<Channel>
|
||||
{
|
||||
|
||||
private final String host;
|
||||
private final int port;
|
||||
private final boolean ssl;
|
||||
|
||||
@Override
|
||||
@ -21,8 +20,15 @@ public class HttpInitializer extends ChannelInitializer<Channel>
|
||||
{
|
||||
if ( ssl )
|
||||
{
|
||||
SSLContext context = SSLContext.getDefault();
|
||||
SSLEngine engine = context.createSSLEngine( host, port );
|
||||
SSLContext context = SSLContext.getInstance( "TLS" );
|
||||
context.init( null, new TrustManager[]
|
||||
{
|
||||
TrustingX509Manager.getInstance()
|
||||
}, null );
|
||||
|
||||
SSLEngine engine = context.createSSLEngine();
|
||||
engine.setUseClientMode( true );
|
||||
|
||||
ch.pipeline().addLast( "ssl", new SslHandler( engine ) );
|
||||
}
|
||||
ch.pipeline().addLast( "http", new HttpClientCodec() );
|
||||
|
@ -0,0 +1,32 @@
|
||||
package net.md_5.bungee.http;
|
||||
|
||||
import java.security.cert.CertificateException;
|
||||
import java.security.cert.X509Certificate;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class TrustingX509Manager implements X509TrustManager
|
||||
{
|
||||
|
||||
@Getter
|
||||
private static final X509TrustManager instance = new TrustingX509Manager();
|
||||
|
||||
@Override
|
||||
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public X509Certificate[] getAcceptedIssuers()
|
||||
{
|
||||
return new X509Certificate[ 0 ];
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user