Randy Watler wrote:
Ate/David:
I am now using the code below successfully in SecurityValveImpl.java.
Randy
Accidently started this thread on the wrong list. Moving it over to dev.
Looks good to me. With Ate's blessing I'll commit it
// initialize/validate security subject
// access request user principal if defined or default // to profiler anonymous user Principal userPrincipal = request.getRequest().getUserPrincipal(); if (userPrincipal == null) { userPrincipal = new UserPrincipalImpl(profiler.getAnonymousUser()); }
// check for previously established session subject and // invalidate if subject and current user principals do // not match HttpSession session = request.getRequest().getSession(); Subject subject = (Subject) session.getAttribute(PortalReservedParameters.SESSION_KEY_SUBJECT); if (subject != null) { Principal subjectUserPrincipal = SecurityHelper.getPrincipal(subject, UserPrincipal.class); if ((subjectUserPrincipal == null) || !subjectUserPrincipal.getName().equals(userPrincipal.getName())) { subject = null; } }
// create new session subject for user principal if required if (subject == null) { // attempt to get complete subject for user principal // from user manager subject = userMgr.getUser(userPrincipal.getName()).getSubject();
// if subject not available, generate default subject using // request or default profiler anonymous user principal if (subject == null) { Set principals = new HashSet(); principals.add(userPrincipal); subject = new Subject(true, principals, new HashSet(), new HashSet()); }
// establish session subject session.setAttribute(PortalReservedParameters.SESSION_KEY_SUBJECT, subject); }
// set request context subject request.setSubject(subject);
-- David Sean Taylor Bluesunrise Software [EMAIL PROTECTED] [office] +01 707 773 4646 [mobile] +01 707 529 9194
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
