cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Adapter.java Tomcat3Request.java
billbarker2004/11/20 18:45:04 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Adapter.java Tomcat3Request.java Log: Adding support for 'redirectPort'. This works the same as it does on TC 4+. You configure it on the Connector, and your security-constraints can just use the redirect. Revision ChangesPath 1.21 +28 -4 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- CoyoteInterceptor2.java 5 Oct 2004 04:45:55 - 1.20 +++ CoyoteInterceptor2.java 21 Nov 2004 02:45:03 - 1.21 @@ -77,10 +77,13 @@ */ public class CoyoteInterceptor2 extends BaseInterceptor { +public static final String REDIRECT_PORT_ATTR = + org.apache.tomcat.request.redirectPort; private String processorClassName=org.apache.coyote.http11.Http11Protocol; Tomcat3Adapter adapter; ProtocolHandler proto; int protocolNote; +int redirectPort = -1; public CoyoteInterceptor2() { super(); @@ -109,6 +112,21 @@ setAttribute( prop, value ); } +/** + * Set the redirect port. + */ +public void setRedirectPort(int rp) { + redirectPort = rp; + setAttribute(redirectPort, new Integer(rp)); +} + +/** + * Get the redirect port. + */ +public int getRedirectPort() { + return redirectPort; +} + /** Called when the ContextManger is started */ public void engineInit(ContextManager cm) throws TomcatException { @@ -116,7 +134,7 @@ protocolNote = cm.getNoteId(ContextManager.MODULE_NOTE, coyote.protocol); -adapter=new Tomcat3Adapter(cm); +adapter=new Tomcat3Adapter(cm, this); try { Class c=Class.forName(processorClassName); proto=(ProtocolHandler)c.newInstance(); @@ -204,8 +222,12 @@ return null; Tomcat3Request httpReq=(Tomcat3Request)request; - -if(key!=null httpReq!=null ){ + +if( httpReq == null || httpReq.getConnector() != this ) { + return null; + } + +if(key!=null ){ org.apache.coyote.Request cReq = httpReq.getCoyoteRequest(); Object info = cReq.getAttribute(key); if( info != null) @@ -222,7 +244,9 @@ } return cReq.getAttribute(key); -} +} else if(key.equals(REDIRECT_PORT_ATTR)) { + return new Integer(redirectPort); + } return cReq.getAttribute( key ); } 1.9 +5 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Adapter.java Index: Tomcat3Adapter.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Adapter.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Tomcat3Adapter.java 29 Aug 2004 17:14:41 - 1.8 +++ Tomcat3Adapter.java 21 Nov 2004 02:45:03 - 1.9 @@ -18,6 +18,7 @@ import org.apache.coyote.Adapter; import org.apache.tomcat.core.ContextManager; +import org.apache.tomcat.core.BaseInterceptor; /** Adapter between Coyote and Tomcat. * @@ -29,9 +30,11 @@ */ public class Tomcat3Adapter implements Adapter { ContextManager cm; +BaseInterceptor connector; -Tomcat3Adapter(ContextManager ctxman) { +Tomcat3Adapter(ContextManager ctxman, CoyoteInterceptor2 conn) { cm = ctxman; + connector = conn; } static int containerRequestNOTE=1; // XXX Implement a NoteManager, namespaces. @@ -53,6 +56,7 @@ reqA.setCoyoteRequest(request); resA.setCoyoteResponse(response); + reqA.setConnector(connector); request.setNote( containerRequestNOTE, reqA ); } else { resA=(Tomcat3Response)reqA.getResponse(); 1.15 +15 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Request.java Index: Tomcat3Request.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Request.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker2004/10/04 21:45:55 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: The translation of HTTP/1.1 attribute names is now the responsibility of the Connector. Revision ChangesPath 1.20 +23 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- CoyoteInterceptor2.java 26 Feb 2004 06:00:27 - 1.19 +++ CoyoteInterceptor2.java 5 Oct 2004 04:45:55 - 1.20 @@ -101,7 +101,7 @@ Hashtable attributes=new Hashtable(); public void setAttribute( String prop, Object value) { - attributes.put( prop, value ); + attributes.put( translateAttributeName(prop), value ); } @@ -253,5 +253,27 @@ SSLSupport.CERTIFICATE_KEY.equals(key) || SSLSupport.SESSION_ID_KEY.equals(key); } + +private String translateAttributeName(String name) { + if (clientAuth.equals(name)) { + return clientauth; + } else if (keystoreFile.equals(name)) { + return keystore; + } else if (randomFile.equals(name)) { + return randomfile; + } else if (rootFile.equals(name)) { + return rootfile; + } else if (keystorePass.equals(name)) { + return keypass; + } else if (keystoreType.equals(name)) { + return keytype; + } else if (sslProtocol.equals(name)) { + return protocol; + } else if (sslProtocols.equals(name)) { + return protocols; + } + return name; +} + } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
[EMAIL PROTECTED] wrote: billbarker2004/02/25 22:00:29 Will it be in rc2 ? - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
- Original Message - From: Henri Gomez [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED] Sent: Thursday, February 26, 2004 12:48 AM Subject: Re: cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java [EMAIL PROTECTED] wrote: billbarker2004/02/25 22:00:29 Will it be in rc2 ? Actually, I'm hoping that there won't be a need for an RC2, and we can just move on to Final. This is the only code change since RC1, and it is pretty small and most of it is in the optional JMXSupport component. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This message is intended only for the use of the person(s) listed above as the intended recipient(s), and may contain information that is PRIVILEGED and CONFIDENTIAL. If you are not an intended recipient, you may not read, copy, or distribute this message or any attachment. If you received this communication in error, please notify us immediately by e-mail and then delete all copies of this message and any attachments. In addition you should be aware that ordinary (unencrypted) e-mail sent through the Internet is not secure. Do not send confidential or sensitive information, such as social security numbers, account numbers, personal identification numbers and passwords, to us via ordinary (unencrypted) e-mail. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker2004/02/25 22:00:29 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Save off the protocol for use by JMXSupport. Revision ChangesPath 1.19 +5 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- CoyoteInterceptor2.java 24 Feb 2004 08:54:30 - 1.18 +++ CoyoteInterceptor2.java 26 Feb 2004 06:00:27 - 1.19 @@ -80,6 +80,7 @@ private String processorClassName=org.apache.coyote.http11.Http11Protocol; Tomcat3Adapter adapter; ProtocolHandler proto; +int protocolNote; public CoyoteInterceptor2() { super(); @@ -112,11 +113,14 @@ */ public void engineInit(ContextManager cm) throws TomcatException { super.engineInit( cm ); - + +protocolNote = cm.getNoteId(ContextManager.MODULE_NOTE, + coyote.protocol); adapter=new Tomcat3Adapter(cm); try { Class c=Class.forName(processorClassName); proto=(ProtocolHandler)c.newInstance(); + setNote(protocolNote, proto); } catch( Exception ex ) { ex.printStackTrace(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
hgomez 2003/10/08 01:48:32 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Comment gzip/http 1.1 tuning for Coyote 2 (now it's using HEAD) Revision ChangesPath 1.17 +16 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- CoyoteInterceptor2.java 18 Sep 2003 16:13:57 - 1.16 +++ CoyoteInterceptor2.java 8 Oct 2003 08:48:32 - 1.17 @@ -103,6 +103,21 @@ * ul * lireportedname - name of server sent back to browser (security purposes)/li * /ul + * ul + * licompression - use gzip compression in HTTP 1.1 (on/off) - def off/li + * /ul + * ul + * licompressionMinSize - minimum size content to use gzip compression in HTTP 1.1 - def 2048/li + * /ul + * ul + * linoCompressionUserAgents - comma separated list of userAgents who didn't support gzip/li + * /ul + * ul + * lirestrictedUserAgents - comma separated list of userAgents who didn't support HTTP 1.1 (use HTTP 1.0)/li + * /ul + * ul + * licompressableMimeTypes - comma separated list of mime types supported for compression - def text/html,text/xml,text/plain/li + * /ul */ public class CoyoteInterceptor2 extends BaseInterceptor { @@ -114,7 +129,7 @@ super(); // defaults: this.setAttribute( port, 8080 ); -this.setAttribute( soLinger, 100 ); +this.setAttribute( soLinger, -1 ); } // PoolTcpConnector - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Adapter.java Tomcat3Request.java Tomcat3Response.java
hgomez 2003/09/18 09:13:57 Modified:coyote/src/java/org/apache/coyote/tomcat4 CoyoteInputStream.java CoyoteServerSocketFactory.java Constants.java CoyoteOutputStream.java OutputBuffer.java CoyoteResponse.java CoyoteResponseFacade.java CoyoteRequestFacade.java CoyoteRequest.java CoyoteWriter.java coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Adapter.java Tomcat3Request.java Tomcat3Response.java Log: More import cleaned Revision ChangesPath 1.3 +1 -3 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteInputStream.java Index: CoyoteInputStream.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteInputStream.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CoyoteInputStream.java3 Oct 2002 17:20:52 - 1.2 +++ CoyoteInputStream.java18 Sep 2003 16:13:51 - 1.3 @@ -60,14 +60,12 @@ package org.apache.coyote.tomcat4; -import java.io.InputStream; import java.io.IOException; import javax.servlet.ServletInputStream; -import org.apache.tomcat.util.buf.ByteChunk; - import org.apache.coyote.Request; +import org.apache.tomcat.util.buf.ByteChunk; /** 1.5 +0 -9 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteServerSocketFactory.java Index: CoyoteServerSocketFactory.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteServerSocketFactory.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- CoyoteServerSocketFactory.java19 Jun 2002 09:25:39 - 1.4 +++ CoyoteServerSocketFactory.java18 Sep 2003 16:13:51 - 1.5 @@ -59,17 +59,8 @@ package org.apache.coyote.tomcat4; import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.KeyManagementException; -import java.security.Security; -import java.security.cert.CertificateException; /** 1.7 +0 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/Constants.java Index: Constants.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/Constants.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Constants.java28 Apr 2003 17:08:25 - 1.6 +++ Constants.java18 Sep 2003 16:13:51 - 1.7 @@ -58,7 +58,6 @@ */ package org.apache.coyote.tomcat4; -import java.util.Locale; /** * Constants. 1.3 +0 -2 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteOutputStream.java Index: CoyoteOutputStream.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteOutputStream.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CoyoteOutputStream.java 6 Nov 2002 09:26:42 - 1.2 +++ CoyoteOutputStream.java 18 Sep 2003 16:13:51 - 1.3 @@ -64,8 +64,6 @@ import javax.servlet.ServletOutputStream; -import org.apache.coyote.Response; - /** * Coyote implementation of the servlet output stream. * 1.11 +0 -3 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/OutputBuffer.java Index: OutputBuffer.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/OutputBuffer.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- OutputBuffer.java 15 Sep 2003 14:16:17 - 1.10 +++ OutputBuffer.java 18 Sep 2003 16:13:51 - 1.11 @@ -60,9 +60,6 @@ package org.apache.coyote.tomcat4; import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; import java.io.Writer; import java.util.Hashtable; 1.33 +10 -24
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker2002/11/23 00:38:23 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Return to Servlet-Spec 2.2 compliance. Revert to the brain-dead 2.2 spec. We are only allowed to send the top level cert in 2.2 land, so don't send the full array. Revision ChangesPath 1.13 +8 -0 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- CoyoteInterceptor2.java 20 Jun 2002 18:53:44 - 1.12 +++ CoyoteInterceptor2.java 23 Nov 2002 08:38:23 - 1.13 @@ -241,6 +241,14 @@ if(isSSLAttribute(key)) { cReq.action(ActionCode.ACTION_REQ_SSL_ATTRIBUTE, httpReq.getCoyoteRequest() ); + if( SSLSupport.CERTIFICATE_KEY.equals(key) ) { + // Only allowed a single cert under the 2.2 Spec. + Object [] value = (Object []) cReq.getAttribute(key); + if( value != null ) { + cReq.setAttribute(key, value[0]); + } + } + return cReq.getAttribute(key); } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker2002/11/23 01:04:17 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Last one wasn't quite right. At the momement, all SSL attributes are grabbed for a request for any. Thus checking the 'key' isn't good enough. Revision ChangesPath 1.14 +5 -7 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- CoyoteInterceptor2.java 23 Nov 2002 08:38:23 - 1.13 +++ CoyoteInterceptor2.java 23 Nov 2002 09:04:16 - 1.14 @@ -241,14 +241,12 @@ if(isSSLAttribute(key)) { cReq.action(ActionCode.ACTION_REQ_SSL_ATTRIBUTE, httpReq.getCoyoteRequest() ); - if( SSLSupport.CERTIFICATE_KEY.equals(key) ) { - // Only allowed a single cert under the 2.2 Spec. - Object [] value = (Object []) cReq.getAttribute(key); - if( value != null ) { - cReq.setAttribute(key, value[0]); - } + // Only allowed a single cert under the 2.2 Spec. + Object [] value = (Object []) cReq.getAttribute(SSLSupport.CERTIFICATE_KEY); + if( value != null ) { + cReq.setAttribute(key, value[0]); } - + return cReq.getAttribute(key); } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker2002/11/23 01:07:23 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: It's way too late for me to be programming, when I miss simple things like this. Revision ChangesPath 1.15 +1 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- CoyoteInterceptor2.java 23 Nov 2002 09:04:16 - 1.14 +++ CoyoteInterceptor2.java 23 Nov 2002 09:07:23 - 1.15 @@ -244,7 +244,7 @@ // Only allowed a single cert under the 2.2 Spec. Object [] value = (Object []) cReq.getAttribute(SSLSupport.CERTIFICATE_KEY); if( value != null ) { - cReq.setAttribute(key, value[0]); + cReq.setAttribute(SSLSupport.CERTIFICATE_KEY, value[0]); } return cReq.getAttribute(key); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker2002/05/31 22:14:02 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Support for two-part init/start API. Remy's change wasn't as transparent as advertised. In particular, the RC2 release doesn't work at all. This should be OK, even if it calls socket methods earlier than in 3.3.1. Feel to -1 if I'm breaking Jk2. Revision ChangesPath 1.11 +2 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- CoyoteInterceptor2.java 13 Apr 2002 06:18:18 - 1.10 +++ CoyoteInterceptor2.java 1 Jun 2002 05:14:02 - 1.11 @@ -164,6 +164,7 @@ else IntrospectionUtils.setAttribute( proto, k, o ); } + proto.init(); } catch( Exception ex ) { throw new TomcatException( Error setting protocol properties , ex ); } @@ -173,7 +174,7 @@ */ public void engineStart(ContextManager cm) throws TomcatException { try { -proto.init(); +proto.start(); } catch( Exception ex ) { ex.printStackTrace(); throw new TomcatException( ex ); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker02/04/12 23:18:18 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Use SSLSupport fields to validate SSL attributes. Revision ChangesPath 1.10 +4 -5 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- CoyoteInterceptor2.java 10 Apr 2002 23:50:33 - 1.9 +++ CoyoteInterceptor2.java 13 Apr 2002 06:18:18 - 1.10 @@ -254,11 +254,10 @@ * Check if a string is a reserved SSL attribute key. */ public static boolean isSSLAttribute(String key) { -if(key == null) -return false; -return key.equals(javax.servlet.request.cipher_suite) || -key.equals(javax.servlet.request.X509Certificate) || -key.equals(javax.servlet.request.key_size); + return SSLSupport.CIPHER_SUITE_KEY.equals(key) || + SSLSupport.KEY_SIZE_KEY.equals(key)|| + SSLSupport.CERTIFICATE_KEY.equals(key) || + SSLSupport.SESSION_ID_KEY.equals(key); } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker02/04/08 21:33:53 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Do a correct check if the request is for a SSL attribute. The lookup is way too expensive to do it when it isn't needed. Revision ChangesPath 1.5 +20 -10 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- CoyoteInterceptor2.java 9 Apr 2002 04:23:04 - 1.4 +++ CoyoteInterceptor2.java 9 Apr 2002 04:33:53 - 1.5 @@ -221,20 +221,30 @@ } if(key!=null httpReq!=null ){ - org.apache.coyote.Request cReq = httpReq.getCoyoteRequest(); - Object info = cReq.getAttribute(key); - if( info != null) - return info; +org.apache.coyote.Request cReq = httpReq.getCoyoteRequest(); +Object info = cReq.getAttribute(key); +if( info != null) +return info; // XXX Should use MsgContext, pass the attribute we need. // This will extract both - // XXX the startsWith is a hack, but it is supposed to be reserved. - if(key.startsWith(javax.servlet.request.)) { - cReq.action(ActionCode.ACTION_REQ_SSL_ATTRIBUTE, - httpReq.getCoyoteRequest() ); - return cReq.getAttribute(key); - } +if(isSSLAttribute(key)) { +cReq.action(ActionCode.ACTION_REQ_SSL_ATTRIBUTE, +httpReq.getCoyoteRequest() ); +return cReq.getAttribute(key); +} } return super.getInfo(ctx,request,id,key); +} + +/** + * Check if a string is a reserved SSL attribute key. + */ +public static boolean isSSLAttribute(String key) { +if(key == null) +return false; +return key.equals(javax.servlet.request.cipher_suite) || +key.equals(javax.servlet.request.X509Certificate) || +key.equals(javax.servlet.request.key_size); } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker02/04/08 21:23:04 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Hook-up the SSL attributes to the back-end. This should work reasonably well across connectors. Revision ChangesPath 1.4 +10 -2 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- CoyoteInterceptor2.java 8 Apr 2002 23:47:04 - 1.3 +++ CoyoteInterceptor2.java 9 Apr 2002 04:23:04 - 1.4 @@ -221,10 +221,18 @@ } if(key!=null httpReq!=null ){ + org.apache.coyote.Request cReq = httpReq.getCoyoteRequest(); + Object info = cReq.getAttribute(key); + if( info != null) + return info; // XXX Should use MsgContext, pass the attribute we need. // This will extract both -httpReq.getCoyoteRequest().action( ActionCode.ACTION_REQ_SSL_ATTRIBUTE, - httpReq.getCoyoteRequest() ); + // XXX the startsWith is a hack, but it is supposed to be reserved. + if(key.startsWith(javax.servlet.request.)) { + cReq.action(ActionCode.ACTION_REQ_SSL_ATTRIBUTE, + httpReq.getCoyoteRequest() ); + return cReq.getAttribute(key); + } } return super.getInfo(ctx,request,id,key); } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java
billbarker02/04/09 22:01:01 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Log: Fix the return value to conform to the API. Why can't Java be like C++ where this is an error? Revision ChangesPath 1.8 +4 -3 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- CoyoteInterceptor2.java 9 Apr 2002 20:14:11 - 1.7 +++ CoyoteInterceptor2.java 10 Apr 2002 05:01:01 - 1.8 @@ -233,18 +233,19 @@ return super.getInfo(ctx,request,id,key); } -public void setInfo( Context ctx, org.apache.tomcat.core.Request request, +public int setInfo( Context ctx, org.apache.tomcat.core.Request request, int id, String key, String object ) { if( ! ( request instanceof Tomcat3Request ) ) -return; +return DECLINED; Tomcat3Request httpReq=(Tomcat3Request)request; if(key!=null httpReq!=null ){ org.apache.coyote.Request cReq = httpReq.getCoyoteRequest(); cReq.setAttribute(key, object); + return OK; } -super.setInfo(ctx,request,id,key, object); + return super.setInfo(ctx, request, id, key, object); } /** -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Request.java
costin 02/04/08 16:47:04 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Request.java Log: Add the callback for SSL info Revision ChangesPath 1.3 +26 -0 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CoyoteInterceptor2.java 5 Apr 2002 22:17:49 - 1.2 +++ CoyoteInterceptor2.java 8 Apr 2002 23:47:04 - 1.3 @@ -202,5 +202,31 @@ } return 0; } + + +/** + getInfo calls for SSL data + + @return the requested data +*/ +public Object getInfo( Context ctx, org.apache.tomcat.core.Request request, + int id, String key ) { + +Tomcat3Request httpReq; + +try { +httpReq=(Tomcat3Request)request; +} catch (ClassCastException e){ +return null; +} + +if(key!=null httpReq!=null ){ +// XXX Should use MsgContext, pass the attribute we need. +// This will extract both +httpReq.getCoyoteRequest().action( ActionCode.ACTION_REQ_SSL_ATTRIBUTE, + httpReq.getCoyoteRequest() ); +} +return super.getInfo(ctx,request,id,key); +} } 1.4 +4 -0 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Request.java Index: Tomcat3Request.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Request.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Tomcat3Request.java 8 Apr 2002 22:57:36 - 1.3 +++ Tomcat3Request.java 8 Apr 2002 23:47:04 - 1.4 @@ -116,6 +116,10 @@ end=-1; } +public org.apache.coyote.Request getCoyoteRequest() { +return coyoteRequest; +} + /** Attach the Coyote Request to this Request. * This is currently set pre-request to allow copying the request * attributes to the Tomcat attributes. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Adapter.java Tomcat3Request.java Tomcat3Response.java
costin 02/04/05 10:42:03 Added: coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Adapter.java Tomcat3Request.java Tomcat3Response.java Log: Initial ( and incomplete ) refactoring to use ProtocolHandler and stateless objects. I used different names to avoid affecting the existing ( working ) impl., the code is cut and pasted. After I get everything stable we can switch back to the original names or keep the new ones. Revision ChangesPath 1.1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === /* * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * * [Additional notices, if required by prior licensing conditions] * */ package org.apache.coyote.tomcat3; import java.io.*; import java.net.*; import java.util.*; import java.text.*; import org.apache.tomcat.core.*; import org.apache.tomcat.util.res.StringManager; import org.apache.tomcat.util.IntrospectionUtils; import org.apache.tomcat.util.buf.*; import org.apache.tomcat.util.http.*; import org.apache.tomcat.util.log.*; import org.apache.tomcat.util.compat.*; import org.apache.tomcat.util.net.*; import org.apache.coyote.*; /** Standalone http. * * Connector properties: * ul * li secure - will load a SSL socket factory and act as https server/li * /ul * * Properties passed to the net layer: * ul * litimeout/li * libacklog/li * liaddress/li * liport/li * /ul * Thread pool properties: * ul * liminSpareThreads/li * limaxSpareThreads/li * limaxThreads/li * lipoolOn/li * /ul * Properties for HTTPS: * ul * likeystore - certificates - default to ~/.keystore/li * likeypass - password/li * liclientauth - true if the server should authenticate the client using certs/li * /ul * Properties for HTTP: * ul * lireportedname - name of server sent back to browser (security purposes)/li * /ul */ public class CoyoteInterceptor2 extends BaseInterceptor { private String
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Request.java Tomcat3Response.java
costin 02/04/05 14:17:49 Modified:coyote/src/java/org/apache/coyote/tomcat3 CoyoteInterceptor2.java Tomcat3Request.java Tomcat3Response.java Log: One more step. The only remaining problem is implementing callbacks to the protocol that 'pull' information. Revision ChangesPath 1.2 +2 -2 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java Index: CoyoteInterceptor2.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteInterceptor2.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CoyoteInterceptor2.java 5 Apr 2002 18:42:03 - 1.1 +++ CoyoteInterceptor2.java 5 Apr 2002 22:17:49 - 1.2 @@ -193,9 +193,9 @@ */ public int preService(org.apache.tomcat.core.Request request, org.apache.tomcat.core.Response response) { - if(response instanceof CoyoteResponse) { + if(response instanceof Tomcat3Response) { try { - ((CoyoteResponse)response).sendAcknowledgement(); + ((Tomcat3Response)response).sendAcknowledgement(); } catch(Exception ex) { log(Can't send ACK, ex); } 1.2 +35 -48 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Request.java Index: Tomcat3Request.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/Tomcat3Request.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Tomcat3Request.java 5 Apr 2002 18:42:03 - 1.1 +++ Tomcat3Request.java 5 Apr 2002 22:17:49 - 1.2 @@ -78,18 +78,23 @@ /** The Request to connect with Coyote. * This class handles the I/O requirements and transferring the request * line and Mime headers between Coyote and Tomcat. - * @Author Bill Barker + * + * @author Bill Barker + * @author Costin Manolache */ public class Tomcat3Request extends org.apache.tomcat.core.Request { org.apache.coyote.Request coyoteRequest=null; - -SSLSupport sslSupport=null; + +// For SSL attributes we need to call an ActionHook to get +// info from the protocol handler. +//SSLSupport sslSupport=null; + ByteChunk readChunk = new ByteChunk(); int pos=-1; int end=-1; byte [] readBuffer = null; -Socket socket = null; + public Tomcat3Request() { super(); @@ -100,11 +105,11 @@ public void recycle() { super.recycle(); if( coyoteRequest != null) coyoteRequest.recycle(); + remoteAddrMB.recycle(); remoteHostMB.recycle(); - readChunk.recycle(); - sslSupport=null; + readBuffer=null; pos=-1; end=-1; @@ -115,32 +120,22 @@ * attributes to the Tomcat attributes. */ public void setCoyoteRequest(org.apache.coyote.Request cReq) { - coyoteRequest=cReq; - // This is really ugly, but fast. - // I could still be talked out of it. - schemeMB.recycle(); - methodMB.recycle(); - uriMB.recycle(); - queryMB.recycle(); - protoMB.recycle(); - try { - schemeMB.duplicate(coyoteRequest.scheme()); - methodMB.duplicate(coyoteRequest.method()); - uriMB.duplicate(coyoteRequest.requestURI()); - queryMB.duplicate(coyoteRequest.query()); - protoMB.duplicate(coyoteRequest.protocol()); - } catch(IOException iex) { // ignore - } +coyoteRequest=cReq; + +// The CoyoteRequest/Tomcat3Request are bound togheter, they +// don't change. That means we can use the same field ( which +// doesn't change as well. +schemeMB = coyoteRequest.scheme(); +methodMB = coyoteRequest.method(); +uriMB = coyoteRequest.requestURI(); +queryMB = coyoteRequest.query(); +protoMB = coyoteRequest.protocol(); + headers = coyoteRequest.getMimeHeaders(); scookies.setHeaders(headers); params.setHeaders(headers); } -/** Set the socket for this request. - */ -public void setSocket(Socket socket) { - this.socket = socket; -} - + /** Read a single character from the request body. */ public int doRead() throws IOException { @@ -201,43 +196,35 @@ // override special methods public MessageBytes remoteAddr() { - if( remoteAddrMB.isNull() ) { - remoteAddrMB.setString(socket.getInetAddress().getHostAddress()); - }