Hi,

I am using Tomcat 6.0.18 embedded in Geronimo server to cluster my web
application.  I have two nodes Node1 and Node2. On Node1 the HTTP port is
8080 and AJP port 8009. On Node2 the HTTP port is 8090 and AJP port 8019. I
am using Apache HTTP Server (HTTP on port 80) with mod_jk as the front-end
server for my application.  I am using FORM authentication method to login
to my application.  When I access a secure resource in my application
through the Apache HTTP server on port 80, it redirects me to login page and
once authenticated it directs me to the secure resource loaded from NodeA.
(The secure resource shows a counter that is stored in the session and
incremented with each request.)  When I keep refreshing the page in the
browser, the counter keeps incrementing as long as the request is getting
directed to NodeA.  Once the request is directed to NodeB, I see the login
page. (Ideally I would expect the page to load from NodeB automatically
without having to login again.) At this stage, if try to login, I get a
message "HTTP Status 400 - Invalid direct reference to form login page" and
the browser's URL textbox shows
http://localhost/SimpleWebApp1/secure/j_security_check .

If I use BASIC authentication method to login to my application, I am
prompted for login only once.  I see that counter keeps incrementing with
each refresh of the page in browser and switching between nodes also does
not result in prompt for login.  The browser would automatically send the
login credentials cached from the first time even if switching to NodeB
prompts for credentials again.

When I deploy my application on Geronimo server that embeds Jetty as web
container, and deploy my application on two nodes as described in 1st
paragraph, I see the login page only the first time.  Switching between
nodes while refreshing the page in the browser happens smoothly and I never
get the login page again.

My guess is that there is an issue with Tomcat AJP connector because of
which the request is getting forwarded to the login page when the HTTP
server switches the node that will serve the request.  Can someone throw
light on what could be happening here?

Thanks and best regards,

-- 
Vamsi

Reply via email to