cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
larryi 01/12/31 12:19:59 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Fix bug where reader isn't reset when HttpServletRequestFacade is recycled. Reported by: Vincent Massol Revision ChangesPath 1.31 +2 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- HttpServletRequestFacade.java 16 Oct 2001 03:12:42 - 1.30 +++ HttpServletRequestFacade.java 31 Dec 2001 20:19:58 - 1.31 @@ -95,7 +95,7 @@ HttpSessionFacade sessionFacade; ServletInputStreamFacade isFacade=new ServletInputStreamFacade(); boolean isFacadeInitialized=false; -BufferedReader reader; +BufferedReader reader=null; DateFormat []dateFormats; UEncoder uencoder; @@ -139,6 +139,7 @@ sessionFacade=null; if( isFacade != null ) isFacade.recycle(); isFacadeInitialized=false; +reader=null; } /** Not public - is called only from FacadeManager -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
nacho 01/09/21 17:53:47 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: HTTP Dates are expressed in Locale.US format Revision ChangesPath 1.28 +7 -7 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- HttpServletRequestFacade.java 2001/09/15 01:31:45 1.27 +++ HttpServletRequestFacade.java 2001/09/22 00:53:47 1.28 @@ -96,11 +96,11 @@ boolean isFacadeInitialized=false; BufferedReader reader; DateFormat []dateFormats = { - new SimpleDateFormat(DateTool.RFC1123_PATTERN), - new SimpleDateFormat(DateTool.rfc1036Pattern), - new SimpleDateFormat(DateTool.asctimePattern) - }; - + new SimpleDateFormat(DateTool.RFC1123_PATTERN, Locale.US), + new SimpleDateFormat(DateTool.rfc1036Pattern, Locale.US), + new SimpleDateFormat(DateTool.asctimePattern, Locale.US) +}; + private boolean usingStream = false; private boolean usingReader = false; @@ -200,7 +200,7 @@ public long getDateHeader(String name) { String value=request.getHeader( name ); if( value==null) return -1; - + long date=DateTool.parseDate(value,dateFormats); if( date==-1) { String msg = sm.getString(httpDate.pe, value); @@ -208,7 +208,7 @@ } return date; } - + public String getHeader(String name) { return request.getHeader(name); }
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
larryi 01/09/14 18:31:46 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Minimize vulnerability from SimpleDateFormat's non-thread safety. Submitted by: Bill Barker [EMAIL PROTECTED] Revision ChangesPath 1.27 +7 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- HttpServletRequestFacade.java 2001/08/12 02:48:57 1.26 +++ HttpServletRequestFacade.java 2001/09/15 01:31:45 1.27 @@ -70,6 +70,7 @@ import java.net.*; import java.security.*; import java.util.*; +import java.text.*; import javax.servlet.*; import javax.servlet.http.*; @@ -94,6 +95,11 @@ ServletInputStreamFacade isFacade=new ServletInputStreamFacade(); boolean isFacadeInitialized=false; BufferedReader reader; +DateFormat []dateFormats = { + new SimpleDateFormat(DateTool.RFC1123_PATTERN), + new SimpleDateFormat(DateTool.rfc1036Pattern), + new SimpleDateFormat(DateTool.asctimePattern) + }; private boolean usingStream = false; private boolean usingReader = false; @@ -195,7 +201,7 @@ String value=request.getHeader( name ); if( value==null) return -1; - long date=DateTool.parseDate(value); + long date=DateTool.parseDate(value,dateFormats); if( date==-1) { String msg = sm.getString(httpDate.pe, value); throw new IllegalArgumentException(msg);
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
costin 01/05/26 11:09:22 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Call request.handleQueryParameters ( to allow the request to set the encoding - the second stage of guessing ) Return unparsed URI. Revision ChangesPath 1.24 +8 -5 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- HttpServletRequestFacade.java 2001/05/15 09:50:37 1.23 +++ HttpServletRequestFacade.java 2001/05/26 18:09:22 1.24 @@ -238,7 +238,7 @@ */ public String getParameter(String name) { if( ! parametersProcessed ) { - request.parameters().handleQueryParameters(); + request.handleQueryParameters(); if( request.method().equals(POST)) { request.handlePostParameters(); } @@ -249,7 +249,7 @@ public String[] getParameterValues(String name) { if( ! parametersProcessed ) { - request.parameters().handleQueryParameters(); + request.handleQueryParameters(); if( request.method().equals(POST)) { request.handlePostParameters(); } @@ -260,7 +260,7 @@ public Enumeration getParameterNames() { if( ! parametersProcessed ) { - request.parameters().handleQueryParameters(); + request.handleQueryParameters(); if( request.method().equals(POST)) { request.handlePostParameters(); } @@ -291,7 +291,8 @@ } public String getQueryString() { -String qS=request.queryString().toString(); + // unprocessed + String qS=request.queryString().toString(); if( .equals(qS) ) return null; return qS; @@ -363,7 +364,9 @@ } public String getRequestURI() { -return request.requestURI().toString(); + if( request.unparsedURI().isNull() ) + return request.requestURI().toString(); +return request.unparsedURI().toString(); } /** Facade: we delegate to the right object ( the context )
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
hgomez 01/05/15 02:50:38 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Fix the getRemoteHost() bugs for both ajp12/ajp13 Revision ChangesPath 1.23 +14 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- HttpServletRequestFacade.java 2001/04/28 18:39:11 1.22 +++ HttpServletRequestFacade.java 2001/05/15 09:50:37 1.23 @@ -346,7 +346,20 @@ } public String getRemoteHost() { -return request.remoteHost().toString(); + String remoteHost = request.remoteHost().toString(); + +// AJP12 defaults to empty string, AJP13 defaults to null +if(remoteHost != null remoteHost.length() != 0) +return remoteHost; + +try{ +remoteHost = InetAddress.getByName(request.remoteAddr().toString()).getHostName(); +}catch(Exception e){ +// If anything went wrong then fall back to using the remote hosts IP address +remoteHost = request.remoteAddr().toString(); +} + +return remoteHost; } public String getRequestURI() {
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java HttpSessionFacade.java JspInterceptor.java
costin 01/03/09 15:34:00 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java HttpSessionFacade.java JspInterceptor.java Log: Fix for #429 - different session facade returned in different requests. Now the session facade is 1-1 associated with the real session, instead of beeing recycled with the request. Thanks [EMAIL PROTECTED] (Gokul Singh) for reporting the bug. Revision ChangesPath 1.21 +9 -4 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- HttpServletRequestFacade.java 2001/03/06 16:07:44 1.20 +++ HttpServletRequestFacade.java 2001/03/09 23:33:59 1.21 @@ -111,7 +111,7 @@ usingReader=false; usingStream=false; parametersProcessed=false; - if( sessionFacade!=null) sessionFacade.recycle(); + sessionFacade=null; if( isFacade != null ) isFacade.recycle(); isFacadeInitialized=false; } @@ -437,12 +437,17 @@ // No real session, return null if( realSession == null ) { - if( sessionFacade!= null) sessionFacade.recycle(); + sessionFacade=null; return null; } - if(sessionFacade==null) + + + sessionFacade=(HttpSessionFacade)realSession.getFacade(); + if( sessionFacade==null ) { sessionFacade=new HttpSessionFacade(); - sessionFacade.setRealSession( realSession ); + sessionFacade.setRealSession( realSession ); + realSession.setFacade( sessionFacade ); + } return sessionFacade; } 1.8 +1 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpSessionFacade.java Index: HttpSessionFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpSessionFacade.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- HttpSessionFacade.java2001/02/20 03:34:11 1.7 +++ HttpSessionFacade.java2001/03/09 23:33:59 1.8 @@ -107,7 +107,7 @@ /** Package-level method - accessible only by core */ void recycle() { - realSession=null; + // realSession=null; } // public facade 1.17 +1 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/JspInterceptor.java Index: JspInterceptor.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/JspInterceptor.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- JspInterceptor.java 2001/02/27 16:56:33 1.16 +++ JspInterceptor.java 2001/03/09 23:33:59 1.17 @@ -336,7 +336,7 @@ } Handler wrapper=req.getHandler(); - + if( wrapper==null ) return 0; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
larryi 01/03/06 08:07:45 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Port patch from tomcat_32 for part of Bugzilla Bug #160 The isRequestedSessionIdValid() should be based on the value of getRequestedSessionId().Instead of just checking that getSession(false) returns a non-null value (i.e. there is an active session) we must also test that the active session's ID matches the requested session id. Patch By: Marc Saegesser Revision ChangesPath 1.20 +6 -3 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- HttpServletRequestFacade.java 2001/02/27 02:49:27 1.19 +++ HttpServletRequestFacade.java 2001/03/06 16:07:44 1.20 @@ -451,9 +451,12 @@ } public boolean isRequestedSessionIdValid() { - // so here we just assume that if we have a session it's, - // all good, else not. - return null != request.getSession(false); +boolean isvalid = false; +ServerSession session = (ServerSession)request.getSession(false); +if(session != null session.getId().equals(getRequestedSessionId())) +isvalid = true; + +return isvalid; } /** Adapter - Request uses getSessionIdSource - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
There may be more to this. This fix uncovered other places that were using the requested session id and assuming that it was really the active session id. I'll be committing a fix for that problem later today. I'm not as familiar with the 3.3. code base but I'll try to port the patch. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Tuesday, March 06, 2001 10:08 AM To: [EMAIL PROTECTED] Subject: cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java larryi 01/03/06 08:07:45 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Port patch from tomcat_32 for part of Bugzilla Bug #160 The isRequestedSessionIdValid() should be based on the value of getRequestedSessionId().Instead of just checking that getSession(false) returns a non-null value (i.e. there is an active session) we must also test that the active session's ID matches the requested session id. Patch By: Marc Saegesser Revision ChangesPath 1.20 +6 -3 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRe questFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Htt pServletRequestFacade.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- HttpServletRequestFacade.java 2001/02/27 02:49:27 1.19 +++ HttpServletRequestFacade.java 2001/03/06 16:07:44 1.20 @@ -451,9 +451,12 @@ } public boolean isRequestedSessionIdValid() { - // so here we just assume that if we have a session it's, - // all good, else not. - return null != request.getSession(false); +boolean isvalid = false; +ServerSession session = (ServerSession)request.getSession(false); +if(session != null session.getId().equals(getRequestedSessionId())) +isvalid = true; + +return isvalid; } /** Adapter - Request uses getSessionIdSource - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
I'm not as familiar with the 3.3. code base but I'll try to port the patch. Marc, Don't feel you need to port the patch. I'll be glad to do that. Thanks. Larry - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
costin 01/02/26 18:49:27 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Update for the 2 fields converted to MessageBytes ( Request shouldn't have any String field that is changed per request, but so far only those that mattered are converted ) ( This is the only change in the core required for Ajp13 optimization ) Revision ChangesPath 1.19 +2 -2 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- HttpServletRequestFacade.java 2001/02/20 03:34:10 1.18 +++ HttpServletRequestFacade.java 2001/02/27 02:49:27 1.19 @@ -341,11 +341,11 @@ } public String getRemoteAddr() { -return request.getRemoteAddr(); +return request.remoteAddr().toString(); } public String getRemoteHost() { -return request.getRemoteHost(); +return request.remoteHost().toString(); } public String getRequestURI() { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java JspInterceptor.java
costin 01/02/05 22:33:35 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java JspInterceptor.java Log: ServletRequestFacade will now use Parameters. It'll also implement the API requirements about when and how the POST parameters are read. JspInterceptor will now deal with jsp_precompile. Revision ChangesPath 1.17 +27 -3 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- HttpServletRequestFacade.java 2001/01/01 00:17:22 1.16 +++ HttpServletRequestFacade.java 2001/02/06 06:33:35 1.17 @@ -94,6 +94,8 @@ private boolean usingStream = false; private boolean usingReader = false; +private boolean parametersProcessed=false; + /** Not public */ HttpServletRequestFacade(Request request) { @@ -106,6 +108,7 @@ void recycle() { usingReader=false; usingStream=false; + parametersProcessed=false; if( sessionFacade!=null) sessionFacade.recycle(); if( isFacade != null ) isFacade.recycle(); isFacadeInitialized=false; @@ -230,15 +233,36 @@ /** Adapter: Request doesn't deal with this servlet convention */ public String getParameter(String name) { -return request.getParameter( name ); + if( ! parametersProcessed ) { + request.parameters().handleQueryParameters(); + if( request.method().equals("POST")) { + request.handlePostParameters(); + } + parametersProcessed=true; + } +return request.parameters().getParameter( name ); } public String[] getParameterValues(String name) { -return request.getParameterValues(name); + if( ! parametersProcessed ) { + request.parameters().handleQueryParameters(); + if( request.method().equals("POST")) { + request.handlePostParameters(); + } + parametersProcessed=true; + } +return request.parameters().getParameterValues(name); } public Enumeration getParameterNames() { -return request.getParameterNames(); + if( ! parametersProcessed ) { + request.parameters().handleQueryParameters(); + if( request.method().equals("POST")) { + request.handlePostParameters(); + } + parametersProcessed=true; + } +return request.parameters().getParameterNames(); } public String getPathInfo() { 1.13 +62 -0 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/JspInterceptor.java Index: JspInterceptor.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/JspInterceptor.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- JspInterceptor.java 2001/02/06 02:46:25 1.12 +++ JspInterceptor.java 2001/02/06 06:33:35 1.13 @@ -279,6 +279,8 @@ } jspServlet.setServletClassName(jspServletCN); + } else { + ctx.addServlet( new JspPrecompileH()); } } @@ -373,6 +375,26 @@ return 0; // not a jsp } + // if it's a jsp_precompile request, don't execute - just + // compile ( if needed ). Since we'll compile the jsp on + // the first request the only special thing is to not + // execute the jsp if jsp_precompile param is in parameters. + String qString=req.queryString().toString(); + // look for ?jsp_precompile or jsp_precompile + + // quick test to see if we need to worry about params + // ( preserve lazy eval for parameters ) + boolean pre_compile=false; + int i=(qString==null) ? -1: qString.indexOf( "jsp_precompile" ); + if( i= 0 ) { + // Probably we are in the problem case. + req.parameters().handleQueryParameters(); + String p=req.parameters().getParameter( "jsp_precompile"); + if( p==null || p.equalsIgnoreCase("true")) { + pre_compile=true; + } + } + // Each .jsp file is compiled to a servlet, and will // have a dependency to check if it's expired Dependency dep= handler.getServletInfo().getDependency(); @@ -386,6 +408,18 @@ // we need to compile... ( or find previous .class ) JasperLiaison liasion=new JasperLiaison(getLog(), debug); liasion.processJspFile(req, jspFile, handler, args); + +
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java
costin 00/12/02 23:44:53 Modified:src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java Log: Fixed last watchdog failure for 3.3. Now hunting changes that went in 3.2 but were not updated to 3.3. Nightly builds will include watchdog results ( run 3 times - another good performance indicator, plus a good stress test. If everything works ok I'll increase that to a higher number of passes ) Revision ChangesPath 1.12 +4 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java Index: HttpServletRequestFacade.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- HttpServletRequestFacade.java 2000/12/01 06:00:24 1.11 +++ HttpServletRequestFacade.java 2000/12/03 07:44:53 1.12 @@ -265,7 +265,10 @@ } public String getQueryString() { -return request.queryString().toString(); +String qS=request.queryString().toString(); + if( "".equals(qS) ) + return null; + return qS; } public String getRemoteUser() {