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);
+    }
+
 }


Reply via email to