Logout keyring unlock session
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 10 Mar 2018 11:15:46 +0000 (12:15 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 10 Mar 2018 11:15:46 +0000 (12:15 +0100)
org.argeo.cms/src/org/argeo/cms/security/JcrKeyring.java

index bc233d07d5cc8eadeb451018cfb461f6bf510b4e..9aeb7602d8c9801ca4c43ebe76721bf727bdb027 100644 (file)
@@ -193,9 +193,11 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
 
        @Override
        protected synchronized void handleKeySpecCallback(PBEKeySpecCallback pbeCallback) {
+               Session session = null;
                try {
-                       session().refresh(true);
-                       Node userHome = NodeUtils.getUserHome(session());
+                       session = session();
+                       session.refresh(true);
+                       Node userHome = NodeUtils.getUserHome(session);
                        Node keyring;
                        if (userHome.hasNode(ARGEO_KEYRING))
                                keyring = userHome.getNode(ARGEO_KEYRING);
@@ -214,6 +216,8 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                        // notYetSavedKeyring.remove();
                } catch (RepositoryException e) {
                        throw new ArgeoJcrException("Cannot handle key spec callback", e);
+               } finally {
+                       JcrUtils.logoutQuietly(session);
                }
        }