理想情况下,我只需要一个简单的SSLSocketChannel。
我已经有了一个通过普通SocketChannel读取和写入消息的组件,但是对于其中一些连接,我必须在线路上使用SSL;但是,这些连接上的操作是相同的。
有谁知道免费的SSLSocketChannel实现(使用适当的选择器)或类似的东西吗?我找到了this,但选择器不接受它,因为它的供应商不是SUN。
我通过一个简单的对象将reading_ from /writing_to net逻辑与网络数据的插入和检索解耦,以便在不生气的情况下使用SSLEngine,但考虑到我不了解SSL协议的内部原理,正确地实现它真的很棘手……
发布于 2009-05-19 23:18:43
查看Restlet的实现,它可能会做你需要的事情,而且都是关于NIO的。
Restlet Engine Javadoc
特别是HttpClientCall。SetProtocol(HTTPS) - getResponseEntityChannel返回ReadableByteChannel (getEntityChannel返回WriteableByteChannel)
发布于 2009-05-18 18:23:14
Jetty为他们的服务器提供了一个NIO实现:SslSelectorChannelConnector。您可能想要偷看一下它,以了解它在做什么的细节。
还有一篇来自O'Reilly的古老的(但很不错的)文章,解释了关于NIO + SSL的细节以及示例代码。
发布于 2017-07-22 03:20:46
TLS Channel是一个简单的库,它可以做到这一点:包装一个SSLContext (或SSLEngine)并公开一个ByteChannel接口,在内部完成繁重的工作。
(免责声明:我是该库的主要作者)。
https://stackoverflow.com/questions/867751
复制相似问题