[EMAIL PROTECTED] wrote:
> billbarker 2003/03/12 22:17:53
>
> Modified: util/java/org/apache/tomcat/util/http/mapper Mapper.java
> Log:
> Initial support to do a redirect to a directory where the URL doesn't
> end in '/'.
>
> This prevents browsers from becoming confused when they get a 401
> response for e.g. /foo. With this turned on, the browser will get a 302
> response to /foo/ before authentication is checked.
>
> It is currently off by default to save the cost of a JNDI lookup on each
> request.
IMHO - it should be on if it improves the situation with the auth.
Tomcat5 will have plenty of performance improvements - and we can break
some defaults if we think it is right.
Costin
>
> Revision Changes Path
> 1.11 +39 -0
>
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/http/mapper/Mapper.java
>
> Index: Mapper.java
> ===================================================================
> RCS file:
>
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/http/mapper/Mapper.java,v
> retrieving revision 1.10 retrieving revision 1.11
> diff -u -r1.10 -r1.11
> --- Mapper.java 7 Mar 2003 16:03:33 -0000 1.10
> +++ Mapper.java 13 Mar 2003 06:17:53 -0000 1.11
> @@ -97,6 +97,12 @@
> */
> protected boolean processWelcomeResources = true;
>
> + /**
> + * Flag indicating that we should redirect to a directory when the
> URL
> + * doesn't end in a '/'. It overrided the Authenticator, so the
> redirect
> + * done before authentication.
> + */
> + protected boolean redirectDirectories = false;
>
> // --------------------------------------------------------- Public
> Methods
>
> @@ -143,6 +149,21 @@
> this.processWelcomeResources = processWelcomeResources;
> }
>
> + /**
> + * Get the flag that indicates if we redirect to directories that
> don't
> + * end a '/'.
> + */
> + public boolean getRedirectDirectories() {
> + return redirectDirectories;
> + }
> +
> + /**
> + * Set the flag that indicates if we redirect to directories that
> don't
> + * end in a '/'.
> + */
> + public void setRedirectDirectories(boolean rd) {
> + redirectDirectories = rd;
> + }
>
> /**
> * Add a new host to the mapper.
> @@ -570,6 +591,24 @@
> (path.getBuffer(), path.getStart(),
> path.getLength());
> mappingData.wrapperPath.setChars
> (path.getBuffer(), path.getStart(),
> path.getLength());
> + }
> + if( redirectDirectories ) {
> + char[] buf = path.getBuffer();
> + if( context.resources != null && buf[pathEnd -1 ] !=
> '/') {
> + Object file = null;
> + try {
> + file =
> context.resources.lookup(path.toString());
> + } catch(NamingException nex) {
> + // Swallow, since someone else handles the 404
> + }
> + if(file != null && file instanceof DirContext ) {
> + CharChunk dirPath = path.getClone();
> + dirPath.append('/');
> + mappingData.redirectPath.setChars
> + (dirPath.getBuffer(), dirPath.getStart(),
> + dirPath.getLength());
> + }
> + }
> }
> }
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]