----- Original Message ----- From: "Simon Papillon" <[EMAIL PROTECTED]>
To: <users@tomcat.apache.org>
Sent: Thursday, June 12, 2008 7:11 PM
Subject: jk load balancing based upon ip address rather than session id


Hello,

I'm using jk 1.2.25 with tomcat 5.5.25 and apache 2.0 on one debian
box - 2.4.27-2-386 i686 GNU/Linux

I've set up 3 tomcat instances  that receive requests from  the jk
load balancer worker

I've implemented in the web application, a simple cross domain single
sign on (SSO) mechanism. This mechanism ties the different session ids in
any single container together, regardless if they've originated from
different domains, for example:
sub1.mydomain.com
sub2.yourdomain.com
sub3.hisdomain.co.uk

No... thats where you going wrong, SSO means a million different things on the web, and some systems do mean that, but on tomcat it means SAME domain, different web apps in same tomcat.

When the domain changes, the browser forget the cookie... thats it.

The way the load balancer works is that is round robins on the domain... and it maps on context not domain.
ie if you call Domain1/Webapp1

Then it will round robin Domain1/Webapp1 (machine1) Domain1/Webapp1 (machine2) Domain1/Webapp1 (machine3) And its the same for other domains.... ie it round robins between the virtual hosts you have set. If you set STICKY SESSIONS... it still round robins... UNLESS the servlet sets a cookie. As soon as a session comes into play, the client (on that domain) continues to hit the same machine... thus that machine remembers the client state.

TC's security uses "full domain temp cookies"... and the problem is that the security comes before everything else, its no intercept-able. ie that security will prompt before anything else gets at it... or you can get at it.

If users never cross a domain... ie a nurse.hospital.com is always in her domain.... the load balancing will work and so will TC's SSO, if they move between webapps, in that domain. But as soon as nurse.hospital.com links to doctor.hospital.com.... the browser will not send the cookie and TC will challenge the browser. And then it will round robin in that domain... unless a cookie is set.... then it sticks.

The way some of these other SSO (cross domain systems work)... is they set partial domains... ie .HOSPITAL.COM (with a dot in front) Then that cookie returns across all those domains.... and they put a JSPECIAL_SESSION_ID in that. Simple... except that you will not get past TC's default security to be able to check it.... thus the cross domain security systems effectively rebuild all the security.

If TC allowed... or a class could be overriden to set a partial cookie.... it would be cross domain SSO... I'm not sure it can be done easily. And the problem is that if you mess with valves... the custom code may not work in later TC's

There are systems out there that do it... but I forget the products... it does mean not using TC's default security.

So... If the doctor want to check out the nurse... he has to log on... ;)

An interesting thought... if Apache could map...

All_Staff.hospital.com/doctor/webapp/ - could be remapped to - doctor.hospital.com/webapp/ All_Staff.hospital.com/nurse/webapp/ - could be remapped to - nurse.hospital.com/webapp/

I wonder if browser and virtual hosting would be happy... ha ha
Of course if nurse was a the end of your domain... all your problems (crossing domains) would go away.

Nice brain bender... ;)

Note that TC actually does it right, because there are all sorts of security considerations when cookies start going cross domain. The other problem is that dotSubDomains... dont work on localhost, so the TC guys probably dont do it because they want to stay sane.

Good luck... the problem is only thereif you cross domains... otherwise it works I think.

--- Anything said above could be in error ---

---------------------------------------------------------------------------
HARBOR : http://www.kewlstuff.co.za/index.htm
The most powerful application server on earth.
The only real POJO Application Server.
See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
---------------------------------------------------------------------------

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

Reply via email to