> > Are there any plans to make things more abstract,
> 
> No.
> 
> > i.e. the possibility to inject a
> > ByteChannel (or NioChannel / SecureNioChannel) into the EndPoint
> > implementation or is it a design goal to use SSLContext + SSLEngine
> > directly in NioEndpoint?
> 
> The extension point for SSL implementations has always been the JSSE
> interface. I don't see that changing.

We are providing a custom SSLImplementation, which provides SSLSupport
and ServerSocketFactory. That was straight forward. The server sockets
are already based on server socket channels, so a "getChannel()" on the
socket delivers an appropriate, TLS-capable channel.

Tomcat 7 introduces SSLUtil with createSSLContext, getKeyManagers,
getTrustManager and configureSessionContext shifting complexity into
the Tomcat core and creating a noteworthy overhead in the SSL stack
to expose low-level and proprietary (no JSR) javax.net.ssl.* classes
beyond SSLServerSocket and SSLSession.

> If you have changes you would like to suggest that:
> a) make your own extension simpler
> b) are minimal impact on the existing code and user base
> 
> then they'd certainly be considered.

NioEndpoint could use a ChannelProvider to retrieve NioChannel /
SecureNioChannel. The DefaultChannelProvider would be equivalent
to the code in NioEndpoint.setSocketOptions(). A SSLImplementation
or SSLUtil class should provide a decorator-pattern method returning
a NioChannel for a SocketChannel argument.

That makes NioEndpoint more abstract, focused to its core functionality
and shifts all the SSL engine handling overhead out to either a
dedicated default provider or a highly specialized, custom TLSChannel.
Reasons for this are among other things the SSL-session clustering
capabilities and transparent session resuming on disconnect / node-
error.

Best regards,
Christian



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to