SSLProcessorTaskpublic class SSLProcessorTask extends com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask Simple ProcessorTask that configure the outputBuffer
using an instance of SSLOutputBuffer . All the request/response
operations are delegated to the ProcessorTask |
Fields Summary |
---|
private SSLReadTask | sslReadTask |
Constructors Summary |
---|
public SSLProcessorTask()
this(true,true);
| public SSLProcessorTask(boolean init, boolean bufferResponse)
super(init,bufferResponse);
|
Methods Summary |
---|
public void | action(org.apache.coyote.ActionCode actionCode, java.lang.Object param)Send an action to the connector.
if (actionCode == ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) {
try {
if (sslSupport != null) {
Object sslO = sslSupport.getCipherSuite();
if (sslO != null)
request.setAttribute
(SSLSupport.CIPHER_SUITE_KEY, sslO);
sslO = sslReadTask.doPeerCertificateChain(false);
if (sslO != null)
request.setAttribute
(SSLSupport.CERTIFICATE_KEY, sslO);
sslO = sslSupport.getKeySize();
if (sslO != null)
request.setAttribute
(SSLSupport.KEY_SIZE_KEY, sslO);
sslO = sslSupport.getSessionId();
if (sslO != null)
request.setAttribute
(SSLSupport.SESSION_ID_KEY, sslO);
}
} catch (Exception e) {
SelectorThread.logger().log(Level.WARNING,
"processorTask.errorSSL" ,e);
}
} else if (actionCode == ActionCode.ACTION_REQ_SSL_CERTIFICATE) {
if( sslSupport != null) {
/*
* Consume and buffer the request body, so that it does not
* interfere with the client's handshake messages
*/
InputFilter[] inputFilters = inputBuffer.getFilters();
((BufferedInputFilter) inputFilters[Constants.BUFFERED_FILTER])
.setLimit(maxPostSize);
inputBuffer.addActiveFilter
(inputFilters[Constants.BUFFERED_FILTER]);
try {
Object sslO = sslReadTask.doPeerCertificateChain(true);
if( sslO != null) {
request.setAttribute
(SSLSupport.CERTIFICATE_KEY, sslO);
}
} catch (Exception e) {
SelectorThread.logger().log(Level.WARNING,
"processorTask.exceptionSSLcert",e);
}
}
} else {
super.action(actionCode,param);
}
| public void | initialize()Initialize the stream and the buffer used to parse the request.
started = true;
request = new Request();
response = new Response();
response.setHook(this);
inputBuffer = new InternalInputBuffer(request,requestBufferSize);
outputBuffer = new SSLOutputBuffer(response,maxHttpHeaderSize,
bufferResponse);
request.setInputBuffer(inputBuffer);
response.setOutputBuffer(outputBuffer);
request.setResponse(response);
initializeFilters();
| public void | setSslReadTask(SSLReadTask sslReadTask)Set the SSLReadTask associated with this instance. The
SSLReadTask is needed when handling peer certificate chain.
this.sslReadTask = sslReadTask;
|
|