org.eclipse.jetty.io.nio
Class SslSelectChannelEndPoint

java.lang.Object
  extended by org.eclipse.jetty.io.nio.ChannelEndPoint
      extended by org.eclipse.jetty.io.nio.SelectChannelEndPoint
          extended by org.eclipse.jetty.io.nio.SslSelectChannelEndPoint
All Implemented Interfaces:
AsyncEndPoint, ConnectedEndPoint, EndPoint

public class SslSelectChannelEndPoint
extends SelectChannelEndPoint

SslSelectChannelEndPoint

A SelectChannelEndPoint that uses an SSLEngine to handle an SSL connection.

There is a named logger "org.eclipse.jetty.http.ssl"


Field Summary
 
Fields inherited from class org.eclipse.jetty.io.nio.ChannelEndPoint
_channel, _gather2, _local, _maxIdleTime, _remote, _socket
 
Constructor Summary
SslSelectChannelEndPoint(Buffers buffers, SocketChannel channel, SelectorManager.SelectSet selectSet, SelectionKey key, SSLEngine engine)
           
SslSelectChannelEndPoint(Buffers buffers, SocketChannel channel, SelectorManager.SelectSet selectSet, SelectionKey key, SSLEngine engine, int maxIdleTime)
           
 
Method Summary
 void close()
          Close any backing stream associated with the endpoint
 void dump()
           
 int fill(Buffer buffer)
          Fill the buffer with unencrypted bytes.
 void flush()
          Flush any buffered output.
 int flush(Buffer buffer)
          Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer.
 int flush(Buffer header, Buffer buffer, Buffer trailer)
          Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer.
 SSLEngine getSSLEngine()
           
 boolean isAllowRenegotiate()
           
 boolean isBufferingInput()
           
 boolean isBufferingOutput()
           
 boolean isBufferred()
           
 boolean isInputShutdown()
           
 boolean isOutputShutdown()
           
 void scheduleWrite()
          Schedule a write dispatch.
 void setAllowRenegotiate(boolean allowRenegotiate)
          Set if SSL re-negotiation is allowed.
 void shutdownInput()
          Shutdown any backing input stream associated with the endpoint
 void shutdownOutput()
          Shutdown any backing output stream associated with the endpoint
 String toString()
           
 
Methods inherited from class org.eclipse.jetty.io.nio.SelectChannelEndPoint
blockReadable, blockWritable, cancelIdle, checkIdleTimestamp, dispatch, getConnection, getSelectionKey, getSelectManager, getSelectSet, handle, idleExpired, isReadyForDispatch, schedule, scheduleIdle, setConnection, setMaxIdleTime, undispatch
 
Methods inherited from class org.eclipse.jetty.io.nio.ChannelEndPoint
gatheringFlush, getChannel, getLocalAddr, getLocalHost, getLocalPort, getMaxIdleTime, getRemoteAddr, getRemoteHost, getRemotePort, getTransport, isBlocking, isOpen
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.jetty.io.EndPoint
getLocalAddr, getLocalHost, getLocalPort, getMaxIdleTime, getRemoteAddr, getRemoteHost, getRemotePort, getTransport, isBlocking, isOpen
 

Constructor Detail

SslSelectChannelEndPoint

public SslSelectChannelEndPoint(Buffers buffers,
                                SocketChannel channel,
                                SelectorManager.SelectSet selectSet,
                                SelectionKey key,
                                SSLEngine engine,
                                int maxIdleTime)
                         throws IOException
Throws:
IOException

SslSelectChannelEndPoint

public SslSelectChannelEndPoint(Buffers buffers,
                                SocketChannel channel,
                                SelectorManager.SelectSet selectSet,
                                SelectionKey key,
                                SSLEngine engine)
                         throws IOException
Throws:
IOException
Method Detail

isAllowRenegotiate

public boolean isAllowRenegotiate()
Returns:
True if SSL re-negotiation is allowed (default false)

setAllowRenegotiate

public void setAllowRenegotiate(boolean allowRenegotiate)
Set if SSL re-negotiation is allowed. CVE-2009-3555 discovered a vulnerability in SSL/TLS with re-negotiation. If your JVM does not have CVE-2009-3555 fixed, then re-negotiation should not be allowed.

Parameters:
allowRenegotiate - true if re-negotiation is allowed (default false)

dump

public void dump()

isOutputShutdown

public boolean isOutputShutdown()
Specified by:
isOutputShutdown in interface EndPoint
Overrides:
isOutputShutdown in class ChannelEndPoint

isInputShutdown

public boolean isInputShutdown()
Specified by:
isInputShutdown in interface EndPoint
Overrides:
isInputShutdown in class ChannelEndPoint

shutdownInput

public void shutdownInput()
                   throws IOException
Description copied from interface: EndPoint
Shutdown any backing input stream associated with the endpoint

Specified by:
shutdownInput in interface EndPoint
Overrides:
shutdownInput in class ChannelEndPoint
Throws:
IOException

shutdownOutput

public void shutdownOutput()
                    throws IOException
Description copied from interface: EndPoint
Shutdown any backing output stream associated with the endpoint

Specified by:
shutdownOutput in interface EndPoint
Overrides:
shutdownOutput in class ChannelEndPoint
Throws:
IOException

close

public void close()
           throws IOException
Description copied from interface: EndPoint
Close any backing stream associated with the endpoint

Specified by:
close in interface EndPoint
Overrides:
close in class SelectChannelEndPoint
Throws:
IOException

fill

public int fill(Buffer buffer)
         throws IOException
Fill the buffer with unencrypted bytes. Called by a Http Parser when more data is needed to continue parsing a request or a response.

Specified by:
fill in interface EndPoint
Overrides:
fill in class ChannelEndPoint
Returns:
an int value indicating the number of bytes filled or -1 if EOF is reached.
Throws:
IOException

flush

public int flush(Buffer buffer)
          throws IOException
Description copied from interface: EndPoint
Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer. The getIndex is updated with the number of bytes flushed. Any mark set is cleared. If the entire contents of the buffer are flushed, then an implicit empty() is done.

Specified by:
flush in interface EndPoint
Overrides:
flush in class SelectChannelEndPoint
Parameters:
buffer - The buffer to flush. This buffers getIndex is updated.
Returns:
the number of bytes written
Throws:
IOException

flush

public int flush(Buffer header,
                 Buffer buffer,
                 Buffer trailer)
          throws IOException
Description copied from interface: EndPoint
Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer. The getIndex is updated with the number of bytes flushed. Any mark set is cleared. If the entire contents of the buffer are flushed, then an implicit empty() is done. The passed header/trailer buffers are written before/after the contents of this buffer. This may be done either as gather writes, as a poke into this buffer or as several writes. The implementation is free to select the optimal mechanism.

Specified by:
flush in interface EndPoint
Overrides:
flush in class SelectChannelEndPoint
Parameters:
header - A buffer to write before flushing this buffer. This buffers getIndex is updated.
buffer - The buffer to flush. This buffers getIndex is updated.
trailer - A buffer to write after flushing this buffer. This buffers getIndex is updated.
Returns:
the total number of bytes written.
Throws:
IOException

flush

public void flush()
           throws IOException
Description copied from interface: EndPoint
Flush any buffered output. May fail to write all data if endpoint is non-blocking

Specified by:
flush in interface EndPoint
Overrides:
flush in class ChannelEndPoint
Throws:
IOException

isBufferingInput

public boolean isBufferingInput()
Specified by:
isBufferingInput in interface EndPoint
Overrides:
isBufferingInput in class ChannelEndPoint
Returns:
True if the endpoint has some buffered input data

isBufferingOutput

public boolean isBufferingOutput()
Specified by:
isBufferingOutput in interface EndPoint
Overrides:
isBufferingOutput in class ChannelEndPoint
Returns:
True if the endpoint has some buffered output data

isBufferred

public boolean isBufferred()
Specified by:
isBufferred in interface EndPoint
Overrides:
isBufferred in class ChannelEndPoint

getSSLEngine

public SSLEngine getSSLEngine()

scheduleWrite

public void scheduleWrite()
Description copied from interface: AsyncEndPoint
Schedule a write dispatch. Set the endpoint to not be writable and schedule a dispatch when it becomes writable.

Specified by:
scheduleWrite in interface AsyncEndPoint
Overrides:
scheduleWrite in class SelectChannelEndPoint

toString

public String toString()
Overrides:
toString in class SelectChannelEndPoint


Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.