[SYNCOPE-1043] Enduser behavior fixed

Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/4d25893a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/4d25893a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/4d25893a

Branch: refs/heads/2_0_X
Commit: 4d25893acfe4bf8a958dada24f589195bbec6644
Parents: 3ce8d1b
Author: Francesco Chicchiriccò <ilgro...@apache.org>
Authored: Fri Mar 10 13:50:47 2017 +0100
Committer: Francesco Chicchiriccò <ilgro...@apache.org>
Committed: Fri Mar 10 13:50:47 2017 +0100

----------------------------------------------------------------------
 .../client/enduser/SyncopeEnduserSession.java   | 33 ++++++++++----------
 .../enduser/resources/LogoutResource.java       |  3 +-
 2 files changed, 17 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/4d25893a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
index 2d556ee..df2f73f 100644
--- 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
+++ 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.client.enduser;
 
+import java.security.AccessControlException;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -115,6 +116,21 @@ public class SyncopeEnduserSession extends WebSession {
         return authenticated;
     }
 
+    @Override
+    public void invalidate() {
+        if (isAuthenticated()) {
+            try {
+                client.logout();
+            } catch (AccessControlException e) {
+                LOG.debug("Unexpected exception while logging out", e);
+            } finally {
+                client = null;
+                selfTO = null;
+            }
+        }
+        super.invalidate();
+    }
+
     public <T> T getService(final Class<T> serviceClass) {
         return (client == null || !isAuthenticated())
                 ? anonymousClient.getService(serviceClass)
@@ -159,21 +175,4 @@ public class SyncopeEnduserSession extends WebSession {
     public void setXsrfTokenGenerated(final boolean xsrfTokenGenerated) {
         this.xsrfTokenGenerated = xsrfTokenGenerated;
     }
-
-    @Override
-    public void invalidate() {
-        if (isAuthenticated()) {
-            client.logout();
-        }
-        super.invalidate();
-    }
-
-    @Override
-    public void invalidateNow() {
-        if (isAuthenticated()) {
-            client.logout();
-        }
-        super.invalidateNow();
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/4d25893a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/LogoutResource.java
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/LogoutResource.java
 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/LogoutResource.java
index 4f20d60..952091f 100644
--- 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/LogoutResource.java
+++ 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/LogoutResource.java
@@ -26,10 +26,9 @@ public class LogoutResource extends AbstractBaseResource {
 
     @Override
     protected ResourceResponse newResourceResponse(final Attributes 
attributes) {
-
         LOG.debug("Logout from enduser application");
 
-        SyncopeEnduserSession.get().invalidate();
+        SyncopeEnduserSession.get().invalidateNow();
 
         ResourceResponse response = new ResourceResponse();
         response.setStatusCode(204);

Reply via email to