Author: dblevins Date: Thu May 28 07:03:28 2009 New Revision: 779457 URL: http://svn.apache.org/viewvc?rev=779457&view=rev Log: Merging r778810 - http://svn.apache.org/viewvc?rev=778810&view=rev
svn merge -r 778809:778810 https://svn.apache.org/repos/asf/openejb/trunk/openejb3 . ------------------------------------------------------------------------ r778810 | dblevins | 2009-05-26 10:45:38 -0700 (Tue, 26 May 2009) | 3 lines Patch from Jean-Louis Monteiro, OPENEJB-1003: SecurityService does not call JAAS logout Thanks, Jean-Louis! ------------------------------------------------------------------------ Modified: openejb/branches/openejb-3.1.1/ (props changed) openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java Propchange: openejb/branches/openejb-3.1.1/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 28 07:03:28 2009 @@ -1 +1 @@ -/openejb/trunk/openejb3:778585,778808 +/openejb/trunk/openejb3:778585,778808,778810 Modified: openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java?rev=779457&r1=779456&r2=779457&view=diff ============================================================================== --- openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java (original) +++ openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java Thu May 28 07:03:28 2009 @@ -26,12 +26,16 @@ import java.net.URL; import java.net.URLDecoder; import java.util.UUID; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * @version $Rev$ $Date$ */ public class SecurityServiceImpl extends AbstractSecurityService { + static private final Map<Object, LoginContext> contexts = new ConcurrentHashMap<Object, LoginContext>(); + public SecurityServiceImpl() { this(BasicJaccProvider.class.getName()); } @@ -72,6 +76,23 @@ Subject subject = context.getSubject(); - return registerSubject(subject); + UUID token = registerSubject(subject); + contexts.put(token, context); + + return token; } + + /* (non-Javadoc) + * @see org.apache.openejb.core.security.AbstractSecurityService#logout(java.util.UUID) + */ + @Override + public void logout(UUID securityIdentity) throws LoginException { + LoginContext context = contexts.get(securityIdentity); + if (null == context) { + throw new IllegalStateException("Unable to logout. Can not recover LoginContext."); + } + context.logout(); + super.logout(securityIdentity); + } + }
