|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.netty.channel.SimpleChannelHandler
org.jboss.netty.handler.codec.frame.FrameDecoder
org.jboss.netty.handler.ssl.SslHandler
public class SslHandler
Adds SSL
· TLS and StartTLS support to a Channel
. Please refer
to the "SecureChat" example in the distribution or the web
site for the detailed usage.
A user should make sure not to write a message while the
handshake is in progress unless it is a
renegotiation. You will be notified by the ChannelFuture
which is
returned by the handshake(Channel)
method when the handshake
process succeeds or fails.
Once the initial handshake is done successfully. You can always call
handshake(Channel)
again to renegotiate the SSL session parameters.
To close the SSL session, the close(Channel)
method should be
called to send the close_notify
message to the remote peer. One
exception is when you close the Channel
- SslHandler
intercepts the close request and send the close_notify
message
before the channel closure automatically. Once the SSL session is closed,
it is not reusable, and consequently you should create a new
SslHandler
with a new SSLEngine
as explained in the
following section.
To restart the SSL session, you must remove the existing closed
SslHandler
from the ChannelPipeline
, insert a new
SslHandler
with a new SSLEngine
into the pipeline,
and start the handshake process as described in the first section.
Constructor Summary | |
---|---|
SslHandler(SSLEngine engine)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
boolean startTls)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
boolean startTls,
Executor delegatedTaskExecutor)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
Executor delegatedTaskExecutor)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
SslBufferPool bufferPool)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
SslBufferPool bufferPool,
boolean startTls)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
SslBufferPool bufferPool,
boolean startTls,
Executor delegatedTaskExecutor)
Creates a new instance. |
|
SslHandler(SSLEngine engine,
SslBufferPool bufferPool,
Executor delegatedTaskExecutor)
Creates a new instance. |
Method Summary | |
---|---|
void |
channelDisconnected(ChannelHandlerContext ctx,
ChannelStateEvent e)
Invoked when a Channel was disconnected from its remote peer. |
ChannelFuture |
close(Channel channel)
Sends an SSL close_notify message to the specified channel and
destroys the underlying SSLEngine . |
protected Object |
decode(ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buffer)
Decodes the received packets so far into a frame. |
static SslBufferPool |
getDefaultBufferPool()
Returns the default SslBufferPool used when no pool is
specified in the constructor. |
SSLEngine |
getEngine()
Returns the SSLEngine which is used by this handler. |
void |
handleDownstream(ChannelHandlerContext context,
ChannelEvent evt)
Handles the specified downstream event. |
ChannelFuture |
handshake(Channel channel)
Starts an SSL / TLS handshake for the specified channel. |
Methods inherited from class org.jboss.netty.handler.codec.frame.FrameDecoder |
---|
channelClosed, decodeLast, exceptionCaught, messageReceived |
Methods inherited from class org.jboss.netty.channel.SimpleChannelHandler |
---|
bindRequested, channelBound, channelConnected, channelInterestChanged, channelOpen, channelUnbound, childChannelClosed, childChannelOpen, closeRequested, connectRequested, disconnectRequested, handleUpstream, setInterestOpsRequested, unbindRequested, writeRequested |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SslHandler(SSLEngine engine)
engine
- the SSLEngine
this handler will usepublic SslHandler(SSLEngine engine, SslBufferPool bufferPool)
engine
- the SSLEngine
this handler will usebufferPool
- the SslBufferPool
where this handler will
acquire the buffers required by the SSLEngine
public SslHandler(SSLEngine engine, boolean startTls)
engine
- the SSLEngine
this handler will usestartTls
- true
if the first write request shouldn't be
encrypted by the SSLEngine
public SslHandler(SSLEngine engine, SslBufferPool bufferPool, boolean startTls)
engine
- the SSLEngine
this handler will usebufferPool
- the SslBufferPool
where this handler will
acquire the buffers required by the SSLEngine
startTls
- true
if the first write request shouldn't be
encrypted by the SSLEngine
public SslHandler(SSLEngine engine, Executor delegatedTaskExecutor)
engine
- the SSLEngine
this handler will usedelegatedTaskExecutor
- the Executor
which will execute the delegated task
that SSLEngine.getDelegatedTask()
will returnpublic SslHandler(SSLEngine engine, SslBufferPool bufferPool, Executor delegatedTaskExecutor)
engine
- the SSLEngine
this handler will usebufferPool
- the SslBufferPool
where this handler will acquire
the buffers required by the SSLEngine
delegatedTaskExecutor
- the Executor
which will execute the delegated task
that SSLEngine.getDelegatedTask()
will returnpublic SslHandler(SSLEngine engine, boolean startTls, Executor delegatedTaskExecutor)
engine
- the SSLEngine
this handler will usestartTls
- true
if the first write request shouldn't be encrypted
by the SSLEngine
delegatedTaskExecutor
- the Executor
which will execute the delegated task
that SSLEngine.getDelegatedTask()
will returnpublic SslHandler(SSLEngine engine, SslBufferPool bufferPool, boolean startTls, Executor delegatedTaskExecutor)
engine
- the SSLEngine
this handler will usebufferPool
- the SslBufferPool
where this handler will acquire
the buffers required by the SSLEngine
startTls
- true
if the first write request shouldn't be encrypted
by the SSLEngine
delegatedTaskExecutor
- the Executor
which will execute the delegated task
that SSLEngine.getDelegatedTask()
will returnMethod Detail |
---|
public static SslBufferPool getDefaultBufferPool()
SslBufferPool
used when no pool is
specified in the constructor.
public SSLEngine getEngine()
SSLEngine
which is used by this handler.
public ChannelFuture handshake(Channel channel) throws SSLException
ChannelFuture
which is notified when the handshake
succeeds or fails.
SSLException
public ChannelFuture close(Channel channel) throws SSLException
close_notify
message to the specified channel and
destroys the underlying SSLEngine
.
SSLException
public void handleDownstream(ChannelHandlerContext context, ChannelEvent evt) throws Exception
SimpleChannelHandler
handleDownstream
in interface ChannelDownstreamHandler
handleDownstream
in class SimpleChannelHandler
context
- the context object for this handlerevt
- the downstream event to process or intercept
Exception
public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception
SimpleChannelHandler
Channel
was disconnected from its remote peer.
channelDisconnected
in class FrameDecoder
Exception
protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception
FrameDecoder
decode
in class FrameDecoder
ctx
- the context of this handlerchannel
- the current channelbuffer
- the cumulative buffer of received packets so far
null
if there's not enough data in the buffer to decode a frame.
Exception
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |