use of com.generallycloud.baseio.component.ssl.SslContext in project baseio by generallycloud.
the class ApplicationBootstrapEngine method bootstrap.
@Override
public void bootstrap(String rootPath, boolean deployModel) throws Exception {
ClassLoader classLoader = getClass().getClassLoader();
Properties serverProperties = FileUtil.readPropertiesByCls("server.properties");
ServerConfiguration sc = new ServerConfiguration();
new PropertiesSCLoader("SERVER").loadConfiguration(sc, serverProperties);
ApplicationContext applicationContext = new ApplicationContext(rootPath);
applicationContext.setDeployModel(deployModel);
SocketChannelContext channelContext = new NioSocketChannelContext(sc);
// SocketChannelContext channelContext = new AioSocketChannelContext(sc);
SocketChannelAcceptor acceptor = new SocketChannelAcceptor(channelContext);
try {
Properties intfProperties = FileUtil.readPropertiesByCls("intf.properties");
applicationContext.setBlackIPs(loadBlackIPs());
applicationContext.setChannelContext(channelContext);
ApplicationConfigurationLoader acLoader = loadConfigurationLoader(intfProperties.getProperty("intf.ApplicationConfigurationLoader"));
ApplicationExtLoader applicationExtLoader = loadApplicationExtLoader(intfProperties.getProperty("intf.ApplicationExtLoader"));
ApplicationContextEnricher enricher = loadApplicationContextEnricher(intfProperties.getProperty("intf.ApplicationContextEnricher"));
applicationContext.setApplicationExtLoader(applicationExtLoader);
applicationContext.setApplicationConfigurationLoader(acLoader);
enricher.enrich(applicationContext);
channelContext.setIoEventHandleAdaptor(new ApplicationIoEventHandle(applicationContext));
if (sc.isSERVER_ENABLE_SSL()) {
if (!StringUtil.isNullOrBlank(sc.getSERVER_CERT_KEY())) {
File certificate = FileUtil.readFileByCls(sc.getSERVER_CERT_CRT(), classLoader);
File privateKey = FileUtil.readFileByCls(sc.getSERVER_CERT_KEY(), classLoader);
SslContext sslContext = SSLUtil.initServer(privateKey, certificate);
channelContext.setSslContext(sslContext);
} else {
String keystoreInfo = sc.getSERVER_SSL_KEYSTORE();
if (StringUtil.isNullOrBlank(keystoreInfo)) {
throw new IllegalArgumentException("ssl enabled,but no config for");
}
String[] params = keystoreInfo.split(";");
if (params.length != 4) {
throw new IllegalArgumentException("SERVER_SSL_KEYSTORE config error");
}
File storeFile = FileUtil.readFileByCls(params[0], classLoader);
SslContext sslContext = SSLUtil.initServer(storeFile, params[1], params[2], params[3]);
channelContext.setSslContext(sslContext);
}
}
sc.setSERVER_PORT(getServerPort(sc.getSERVER_PORT(), sc.isSERVER_ENABLE_SSL()));
acceptor.bind();
} catch (Throwable e) {
Logger logger = LoggerFactory.getLogger(getClass());
logger.error(e.getMessage(), e);
CloseUtil.unbind(acceptor);
}
}
use of com.generallycloud.baseio.component.ssl.SslContext in project baseio by generallycloud.
the class TestFIxedLengthClient method main.
public static void main(String[] args) throws Exception {
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
System.out.println();
System.out.println("____________________" + future.getReadText());
System.out.println();
}
};
SslContext sslContext = SSLUtil.initClient(true);
SocketChannelContext context = new NioSocketChannelContext(new ServerConfiguration("localhost", 18300));
SocketChannelConnector connector = new SocketChannelConnector(context);
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.addSessionEventListener(new LoggerSocketSEListener());
// context.addSessionEventListener(new SessionActiveSEListener());
context.setBeatFutureFactory(new FLBeatFutureFactory());
context.setProtocolFactory(new FixedLengthProtocolFactory());
context.setSslContext(sslContext);
SocketSession session = connector.connect();
FixedLengthFuture future = new FixedLengthFutureImpl(context);
future.write("hello server!");
session.flush(future);
ThreadUtil.sleep(100);
CloseUtil.close(connector);
DebugUtil.debug("连接已关闭。。。");
}
use of com.generallycloud.baseio.component.ssl.SslContext in project baseio by generallycloud.
the class TestFIxedLengthServer method main.
public static void main(String[] args) throws Exception {
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
future.write("yes server already accept your message:");
future.write(future.getReadText());
session.flush(future);
}
};
SocketChannelContext context = new NioSocketChannelContext(new ServerConfiguration(18300));
SocketChannelAcceptor acceptor = new SocketChannelAcceptor(context);
context.addSessionEventListener(new LoggerSocketSEListener());
// context.addSessionEventListener(new SocketSessionAliveSEListener());
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.setBeatFutureFactory(new FLBeatFutureFactory());
context.setProtocolFactory(new FixedLengthProtocolFactory());
File certificate = FileUtil.readFileByCls("generallycloud.com.crt");
File privateKey = FileUtil.readFileByCls("generallycloud.com.key");
SslContext sslContext = SSLUtil.initServer(privateKey, certificate);
context.setSslContext(sslContext);
acceptor.bind();
}
use of com.generallycloud.baseio.component.ssl.SslContext in project baseio by generallycloud.
the class TestSimpleHttpClient method main.
public static void main(String[] args) throws Exception {
HttpIOEventHandle eventHandleAdaptor = new HttpIOEventHandle();
// ServerConfiguration c = new ServerConfiguration("localhost",80);
ServerConfiguration c = new ServerConfiguration("generallycloud.com", 443);
SocketChannelContext context = new NioSocketChannelContext(c);
SocketChannelConnector connector = new SocketChannelConnector(context);
SslContext sslContext = SSLUtil.initClient(true);
context.setProtocolFactory(new ClientHTTPProtocolFactory());
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.addSessionEventListener(new LoggerSocketSEListener());
context.setSslContext(sslContext);
SocketSession session = connector.connect();
HttpClient client = new HttpClient(session);
HttpFuture future = new ClientHttpFuture(context, "/test-show-memory");
HttpFuture res = client.request(future, 10000);
System.out.println();
System.out.println(new String(res.getBodyContent()));
System.out.println();
CloseUtil.close(connector);
}
use of com.generallycloud.baseio.component.ssl.SslContext in project baseio by generallycloud.
the class TestLineBasedServer method main.
public static void main(String[] args) throws Exception {
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
String res = "yes server already accept your message:" + future.getReadText();
future.write(res);
session.flush(future);
}
};
SocketChannelContext context = new NioSocketChannelContext(new ServerConfiguration(18300));
SocketChannelAcceptor acceptor = new SocketChannelAcceptor(context);
context.addSessionEventListener(new LoggerSocketSEListener());
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.setProtocolFactory(new CharBasedProtocolFactory());
File certificate = FileUtil.readFileByCls("generallycloud.com.crt");
File privateKey = FileUtil.readFileByCls("generallycloud.com.key");
SslContext sslContext = SSLUtil.initServer(privateKey, certificate);
context.setSslContext(sslContext);
acceptor.bind();
}
Aggregations