Prohibiting session crossover for multiple JBoss instances

N

NathanIEI

It seems that I have quite the reverse situation from almost every one
else on the subject of session sharing. Unlike most post I've seen, I
DO NOT want to share the session.

I've setup 3 instances of JBoss servers on one machine (localhost:
8080, localhost:8180, localhost:8280) to which I am deploying the same
ear file, for concurrent Q/A testing by different teams. The setup is
good, and works fine, but a problem is introduced when I switch from
one server to the next within the same browser.

I think the problem is that the path variable of the JSESSIONID cookie
holds the same context in all three servers. (ex. path =/mywebapp)
This causes the context to be localhost/mywebapp for all three servers
since the port number isn't taken into consideration. The session is
then considered invalid when the server is switched, and a new session
issued every time you cross a server. I need to be able to have each
session run concurrently with the other, relative to it's own server
instance.

I can explicitly change the <context-root> and repackage for each
server, forcing the path to be different in each cookie, but that can
be a bit cumbersome with the companie's deployment practices. I've
devised a solution that will allow me to change the context depending
on the server:

<context-root>${jboss.server.name}/mywebapp</context-root>

This is fine for testing, but has a negative impact on production.
When the app is deployed to the 'default' (single instance)
configuration in production, you have an unnecessary and ugly addition
to the path like http://myserver/default/mywebapp instead of the //
myserver/mywebapp as preferred.

Anyone have any ideas how to prevent/solve this?

Thanks in advance for *any* help!
 
C

Chris Uppal

NathanIEI said:
I've setup 3 instances of JBoss servers on one machine (localhost:
8080, localhost:8180, localhost:8280) to which I am deploying the same
ear file, for concurrent Q/A testing by different teams. The setup is
good, and works fine, but a problem is introduced when I switch from
one server to the next within the same browser.

Wouldn't it be sufficient to give all three servers different hostnames. E.g.
alias localhost 127.0.0.1 (localhost) to local-qa1, local-qa2, and local-qa3.
That way, I think, the browser should treat them as being in different
"domains" (in cookie-speak).

You may have to tell the three JBoss installations that they are serving
requests to (respectively) http://local-qa1/, http://local-qa2/, and
http://local-qa3/ -- if not, /and/ if they are set up for multi-homed
service[*], then they'll refuse to play when they see an HTTP request for stuff
on, say,
host: local-qa2
when they don't have "local-qa2" configured.

BTW, I have never tried this -- it's pure guesswork (or "theory" as we call it
in the trade ;-)

-- chris

[*] I assume that JBoss knows about multi-homing, but I don't know for sure,
and I certainly don't know whether that's configured by default.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top