As I'm working through the ajp13 code (C and Java), I'm discovering that there is some 
basic work which needs to be done on the protocol itself (as well as a lot of work on 
the implementations).

Specifically:
 
 - If the request contains > 8K of header/attribute information, the protocol fails.

 - There is no authentication step.  I believe that this could result in some serious 
security violations if the web server is performing HTTP authentication (since 
remote_user is one of the attributes passed over). [side note: if anyone thinks 
otherwise, let me know]  Since connections are maintained across many requests, there 
is no good reason not to do the authentication (IMHO).

To fix these major issues will require modifying the protocol.  I have some ideas on 
how to do so, but I want to get some feedback on the best way to go about making these 
changes.  I could just modify the protocol itself, and change the mod_jk code and 
Ajp13 code in the tomcat-3.3 branch.  My fear is that I'll be changing a protocol 
which is in production use, without changing its version number.  This seems like 
asking for trouble.  Should I therefore leave ajp13 where it is and work on ajp14?  Or 
is that multiplying protocols needlessly?

I realize that the new mod_webapp is being worked on, but it seems to me that getting 
mod_jk / ajp13 working right is probably still worth it -- there are plenty of people 
who are going to depend on that before Tomcat 4.0 is released.

If I do change the protocol, it will require people who download the new version to 
update their mod_jk.so at the same time as they rebuild the Java classes.

What do people think?

-Dan
-- 

Dan Milstein // [EMAIL PROTECTED]

Reply via email to