Continue refactoring of home.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / security / JcrKeyring.java
index bc233d07d5cc8eadeb451018cfb461f6bf510b4e..c75d38fc88f54c18fc80414ccba8b29acd076a09 100644 (file)
@@ -46,6 +46,7 @@ import org.argeo.cms.ArgeoTypes;
 import org.argeo.cms.CmsException;
 import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.JcrUtils;
+import org.argeo.node.NodeConstants;
 import org.argeo.node.NodeUtils;
 import org.argeo.node.security.PBEKeySpecCallback;
 
@@ -108,7 +109,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
 
        private Session login() {
                try {
-                       return repository.login();
+                       return repository.login(NodeConstants.HOME);
                } catch (RepositoryException e) {
                        throw new CmsException("Cannot login key ring session", e);
                }
@@ -193,9 +194,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 +217,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);
                }
        }