tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jagadeesh" <jagade...@x-minds.org>
Subject RE: MOD_JK Redirection issues
Date Wed, 03 Jan 2007 15:12:28 GMT

With the solution that you have suggested, I have to encode the url twice to
make sure '%' in '%2f' is again encoded. I do agree with you in that special
characters like '%' shouldn't be part of the request URI, but considering
the fact that I am using a REST implementation where the resources are
identified by the URI, I don't have any other option.

But I am a bit puzzled as the application in Tomcat accepts both 

http://xx.xx.xx/APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API

and 

http://xx.xx.xx/APIServer/authz/list/master/AB?apikey=WEB_INTERFACE_API

So if the load-balancer forwards that request in any form to the
application, it will work. But it seems that the load balancer is just
ignoring it.

Any idea why it is not redirecting url's which has %2F in the URI??

Thanks
Jugs

-----Original Message-----
From: David Smith [mailto:dns4@cornell.edu] 
Sent: Wednesday, January 03, 2007 3:55 PM
To: Tomcat Users List
Subject: Re: MOD_JK Redirection issues

I can see how the server might decode %2f in the path to /.  The % 
character is a special character in urls and should be decoded.  If you 
really mean for the url to literally include '%2f' as part of the file 
name, I would think the url should be:

http://xxx.xxx.xxx/APIServer/authz/list/master%252fAB?apikey=WEB_INTERFACE_A
PI

Note I replaced the % character with it's encoded form %25,  Having said 
that, I don't think it's a good idea to use special characters like % as 
part of the resource name.  It creates nothing but headaches as the 
server has to figure out whether the url has already been normalized or not.

--David

Jagadeesh wrote:
> Further to my last mail, whenever I try accessing this url
>
>
http://xxx.xxx.xxx/APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API
>
> the browser shows exactly the below response
>
> "Not Found
>
> The requested URL /APIServer/authz/list/master/AB was not found on this
> server.
> Apache/2.2.2 (Fedora) Server at cluster.omnidrive.com Port 80"
>
> The interesting thing is '%2F' has been replaced with a '/'
>
> Any thoughts???
>
> Thanks
> Jugs
>
> -----Original Message-----
> From: Jagadeesh [mailto:jagadeesh@x-minds.org] 
> Sent: Wednesday, January 03, 2007 2:38 PM
> To: 'Tomcat Users List'
> Subject: RE: MOD_JK Redirection issues
>
> I changed the loglevel to TRACE, But I couldn't find any new log file. The
> access_log now shows
>
> 61.17.42.35 - - [03/Jan/2007:03:48:05 +0000] "GET
> /APIServer/authz/list/master/AB?apikey=WEB_INTERFACE_API HTTP/1.1" 200
1350
> "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.9)
> Gecko/20061206 Firefox/1.5.0.9"
>
> 61.17.42.35 - - [03/Jan/2007:03:48:44 +0000] "GET
> /APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API HTTP/1.1" 404
314
> "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.9)
> Gecko/20061206 Firefox/1.5.0.9"
>
> Where the first request returns HTTP/1.1 200 and the 2nd request returns
> HTTP/1.1 404.
>
> error_log doesn't have any entries.
>
> I tried sending the same request directly to tomcat and both
> /APIServer/authz/list/master/AB?apikey=WEB_INTERFACE_API and
> /APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API gave the
correct
> response and the status was HTTP/1.1 200. The second request returns 404
> only when it is passed through mod jk.
>
> Thanks
> Jagadeesh
>
>
>
> -----Original Message-----
> From: Rainer Jung [mailto:rainer.jung@kippdata.de] 
> Sent: Wednesday, January 03, 2007 2:03 PM
> To: Tomcat Users List
> Subject: Re: MOD_JK Redirection issues
>
> Set JkLogLevel to trace and have a look at the JkLogFile.
>
> Jagadeesh wrote:
>   
>> Thanks for the tip and I will delete the cachelines.
>>
>> I want jkmod to redirect all the requests to tomcat and it is working
fine
>> except for the request which has %2f in the url before the parameter
part.
>>
>> For eg: 
>>
>> http://loadbalancer.xxx.com/authenticate%2Fjagadeesh?key=12345678 will
not
>> be redirected to tomcat servlet container, 
>>
>> however
>>
>> http://loadbalancer.xxx.com/authenticate/jagadeesh?key=12345678
>> http://loadbalancer.xxx.com/authenticate/jagadeesh%2C/abcd?key=12345678
>> http://loadbalancer.xxx.com/authenticate/jagadeesh?key=12345678&test=%2F
>>
>> are all getting redirected properly to tomcat. Only those request with
%2F
>> in the URI before the parameter (?) part is being ignored and they are
not
>> going past apache (load balancer).
>>
>> The error_log says
>>
>> [Sun Dec 31 04:02:03 2006] [notice] Digest: generating secret for digest
>> authentication ...
>> [Sun Dec 31 04:02:03 2006] [notice] Digest: done
>> [Sun Dec 31 04:02:03 2006] [notice] Apache/2.2.2 (Fedora) configured --
>> resuming normal operations
>> [Sun Dec 31 14:55:17 2006] [error] [client 212.241.200.196] client sent
>> HTTP/1.1 request without hostname (see RFC2616 section 14.23):
>> /w00tw00t.at.ISC.SANS.DFind:)
>> [Sun Dec 31 21:58:25 2006] [error] [client 87.118.100.232] client sent
>> HTTP/1.1 request without hostname (see RFC2616 section 14.23):
>> /w00tw00t.at.ISC.SANS.DFind:)
>>
>> Thanks
>> Jugs
>>
>> -----Original Message-----
>> From: Rainer Jung [mailto:rainer.jung@kippdata.de] 
>> Sent: Wednesday, January 03, 2007 1:42 PM
>> To: Tomcat Users List
>> Subject: Re: MOD_JK Redirection issues
>>
>> OK, from the config I would guess, that you actually forward the request 
>> to tomcat, but get the 404 from there. What does the debug log tell you 
>> about the request in question?
>>
>> Small hint not related to your problem: delete the cachesize lines if 
>> you've got no special reason for them.
>>
>> Jagadeesh wrote:
>>     
>>> Thanks for the reply Rainer.
>>>
>>> I am using tomcat-connectors-1.2.19 and jBoss 4.0.5GA in Fedora Core 5.
>>> Since the binary I downloaded was throwing errors, I build the shared
>>> library mod_jk.so from the source and copied it to the
>>> /usr/lib/httpd/modules/ directory.
>>>
>>> Please find below the configuration file (mod-jk.conf) I am using
>>>
>>>
>>>       
> #=========================================================================
>   
>>> #Loads the module
>>> LoadModule jk_module modules/mod_jk.so
>>>
>>> # The workers file
>>> JkWorkersFile conf/worker.properties
>>>
>>> # Set the jk log level [debug/error/info]
>>> JkLogLevel debug
>>>
>>> # Select the log format
>>> JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"
>>>
>>> # JkOptions indicates to send SSK KEY SIZE
>>> JkOptions +ForwardKeySize +ForwardURIEscaped -ForwardDirectories
>>>
>>> # JkRequestLogFormat
>>> JkRequestLogFormat "%w %V %T"
>>>
>>> # Mount your applications
>>> JkMount /* loadbalancer
>>>
>>> # You can use external file for mount points.
>>> # It will be checked for updates each 60 seconds.
>>> # The format of the file is: /url=worker
>>> # /examples/*=loadbalancer
>>> # JkMountFile conf/uriworkermap.properties
>>>
>>> # Add shared memory.
>>> # This directive is present with 1.2.10 and
>>> # later versions of mod_jk, and is needed for
>>> # for load balancing to work properly
>>> JkShmFile logs/jk.shm
>>>
>>> # Add jkstatus for managing runtime data
>>> <Location /jkstatus/>
>>>     JkMount status
>>>     Order deny,allow
>>>     Deny from all
>>>     Allow from 192.168.0.2
>>> </Location>
>>>
>>>
>>>       
> #=========================================================================
>   
>>> Please find below worker.properties.
>>>
>>>
>>>
>>>       
> #=========================================================================
>   
>>> # Define list of workers that will be used
>>> # for mapping requests
>>> worker.list=loadbalancer,status
>>>
>>> # Define Node1
>>> # modify the host as your host IP or DNS name.
>>> worker.node1.port=8009
>>> worker.node1.host=xxx.xxx.xxx.xxx
>>> worker.node1.type=ajp13
>>> worker.node1.lbfactor=1
>>> worker.node1.cachesize=10
>>>
>>> # Define Node2
>>> # modify the host as your host IP or DNS name.
>>> worker.node2.port=8009
>>> worker.node2.host= xxx.xxx.xxx.xxx 
>>> worker.node2.type=ajp13
>>> worker.node2.lbfactor=1
>>> worker.node2.cachesize=10
>>>
>>> # Load-balancing behaviour
>>> worker.loadbalancer.type=lb
>>> worker.loadbalancer.balance_workers=node1,node2
>>> worker.loadbalancer.sticky_session=1
>>> worker.list=loadbalancer
>>>
>>> # Status worker for managing load balancer
>>> worker.status.type=status
>>>
>>> #=====================================================================
>>>
>>> I am not using uriworkermap.properties.
>>>
>>> Thanks
>>> Jagadeesh
>>>
>>> -----Original Message-----
>>> From: Rainer Jung [mailto:rainer.jung@kippdata.de] 
>>> Sent: Wednesday, January 03, 2007 12:51 PM
>>> To: Tomcat Users List
>>> Subject: Re: MOD_JK Redirection issues
>>>
>>> Please give detailed information on the version and type of web server 
>>> and mod_jk you are using and include mod_jk config and the relevant 
>>> parts of the web server config.
>>>
>>> You can increase the log level of mod_jk to debug or even trace to 
>>> follow, how mod_jk tries to match your requests against the configured 
>>> URL maps.
>>>
>>> Regards,
>>>
>>> Rainer
>>>
>>> Jagadeesh wrote:
>>>       
>>>> Hi All,
>>>>
>>>>  
>>>>
>>>> Happy New Year!!!
>>>>
>>>>  
>>>>
>>>> I am having a few problems when using MOD JK with jBoss application
>>>>         
>>> server.
>>>       
>>>>  
>>>>
>>>> I am hosting an application in jBoss which uses REST protocol to serve
>>>>         
>> the
>>     
>>>> contents. So the GET requests that reach MOD JK can be an encoded
string
>>>> like
>>>>         
>>> http://loadbalancer.xxx.com/authenticate/user%2fjagadeesh?key=123456789
>>>       
>>>>  
>>>>
>>>> Here the actual request is 
>>>>
>>>>  
>>>>
>>>> http://loadbalancer.xxx.com/authenticate/user/jagadeesh?key=123456789
>>>>         
>>> where
>>>       
>>>> %2f is the encoded string for '/'. Whenever MOD JK gets a request like
>>>>         
>>> this,
>>>       
>>>> it seems to be ignoring it rather than passing it to the application
>>>>         
>>> server
>>>       
>>>> and I am getting HTTP 404.
>>>>
>>>>  
>>>>
>>>> I tried accessing the server directly with the request
>>>>
>>>>  
>>>>
>>>> http://node1.xxx.com/authenticate/user%2fjagadeesh?key=123456789 and
>>>>         
> it's
>   
>>>> working fine.
>>>>
>>>>  
>>>>
>>>> Any help to resolve this is greatly appreciated.
>>>>
>>>>  
>>>>
>>>> Thanks
>>>>
>>>> Jagadeesh
>>>>         
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>       
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>     
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>   


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message