I'm not sure what the cleanest way to do this, but I did the following:

1) add a method  on my custom realm:
public void invalidateUser(PrincipalCollection principals) {

   this.clearCachedAuthorizationInfo(principals);

}


2)

Whenever I want to invalidate a session, I call:

public static void invalidateUserAuth() {


RealmSecurityManager mgr = (RealmSecurityManager)SecurityUtils.getSecurityManager();

Collection<Realm> realmCollection = mgr.getRealms();

Iterator<Realm> i = realmCollection.iterator();

//There should be only one realm in this configuration.

if(i.hasNext()) {

MyRealm r = (MyRealm)i.next();

r.invalidateUser(SecurityUtils.getSubject().getPrincipals());

}

}


---James


----- Original Message ----- From: "Mike K" <[email protected]>
To: <[email protected]>
Sent: Tuesday, January 31, 2012 4:39 PM
Subject: Invalidating sessions


What is a cleanest way to invalidate a session?
I currently reaching into sessionDAO and deleting it, but I think actually
taking over that session and logging out would be preferable.
Any ideas?

--
View this message in context: http://shiro-user.582556.n2.nabble.com/Invalidating-sessions-tp7241745p7241745.html
Sent from the Shiro User mailing list archive at Nabble.com.


Reply via email to