]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/OsJcrAuthenticationProvider.java
First working remote node
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / jcr / OsJcrAuthenticationProvider.java
index dc47fa3831b3afc6b6f26b177e22665f017a49b4..9abac5972a7f584fc1aaca81326d49877e4c41af 100644 (file)
@@ -32,20 +32,24 @@ public class OsJcrAuthenticationProvider extends OsAuthenticationProvider {
                final Repository repository = getRepositoryBlocking();
                systemExecutor.execute(new Runnable() {
                        public void run() {
+                               Session session = null;
                                try {
-                                       Session session = repository.login(workspace);
-                                       // WARNING: at this stage we assume that teh java properties
+                                       session = repository.login(workspace);
+                                       // WARNING: at this stage we assume that the java properties
                                        // will have the same value
                                        String userName = System.getProperty("user.name");
                                        Node userHome = JcrUtils.getUserHome(session, userName);
                                        if (userHome == null)
                                                userHome = JcrUtils.createUserHome(session,
                                                                homeBasePath, userName);
-                                       //authen.setDetails(getUserDetails(userHome, authen));
+                                       // authen.setDetails(getUserDetails(userHome, authen));
                                } catch (RepositoryException e) {
+                                       JcrUtils.discardQuietly(session);
                                        throw new ArgeoException(
                                                        "Unexpected exception when synchronizing OS and JCR security ",
                                                        e);
+                               } finally {
+                                       JcrUtils.logoutQuietly(session);
                                }
                        }
                });