Hello,


I’m porting applications from weblogic to jboss which uses tomcat as everybody 
knows.

In weblogic, I used to use the SSO feature which allowed me to logout from a 
webapp without invalidating session for all webapps.



After reading SingleSignOn Valve documentation, I realize that tomcat doesn’t 
behave as I would like. So I’m about to code a new SingleSignOn Valve by 
extending tomcat’s one and overriding the deregister(String ssoId) method so 
that it doesn’t invalidate all sessions bound to the SSO Entry



My question is : is it safe for me to do that ? I mean, am I about to wreck 
something in tomcat internal ? Will I introduce such a change that SSO valve 
wouldn't work anymore ?



Thank in advance.



Dom





/**

484:             * Deregister the specified single sign on identifier, and 
invalidate

485:             * any associated sessions.

486:             *

487:             * @param ssoId Single sign on identifier to deregister

488:             */

489:            protected void deregister(String ssoId) {

490:

491:                if (containerLog.isDebugEnabled())

492:                    containerLog.debug("Deregistering sso id '" + ssoId + 
"'");

493:

494:                // Look up and remove the corresponding SingleSignOnEntry

495:                SingleSignOnEntry sso = null;

496:                synchronized (cache) {

497:                    sso = (SingleSignOnEntry) cache.remove(ssoId);

498:                }

499:

500:                if (sso == null)

501:                    return;

502:



                  /* Remove this part so that only the "current" Session is 
invalidated



503:                // Expire any associated sessions

504:                Session sessions[] = sso.findSessions();

505:                for (int i = 0; i < sessions.length; i++) {

506:                    if (containerLog.isTraceEnabled())

507:                        containerLog.trace(" Invalidating session "

508:                                + sessions[i]);

509:                    // Remove from reverse cache first to avoid recursion

510:                    synchronized (reverse) {

511:                        reverse.remove(sessions[i]);

512:                    }

513:                    // Invalidate this session

514:                    sessions[i].expire();

515:                }



            End of change

            */

516:

517:                // NOTE:  Clients may still possess the old single sign on 
cookie,

518:                // but it will be removed on the next request since it is 
no longer

519:                // in the cache

520:

521:            }



Consultez nos nouveaux sites internet : 
http://www.dexia-sofaxis.com 
http://www.dexia-sofcap-sofcah.com

Tous ensemble pour l’environnement : n’imprimer ce courriel que si nécessaire.

Dexia Sofaxis disclaimer : http://www.dexia-sofaxis.com/disclaimer.html

Reply via email to