]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/OsJcrUserAdminService.java
Update license headers
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / jcr / OsJcrUserAdminService.java
index 80ef1e55963d99544c3194896d9584f2419fb39c..8dec3b4eb33c926f6c81e86dba4759765a912a99 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2007-2012 Argeo GmbH
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.argeo.security.jcr;
 
 import java.util.HashSet;
@@ -10,7 +25,7 @@ import javax.jcr.Session;
 
 import org.argeo.ArgeoException;
 import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.security.SecurityJcrUtils;
+import org.argeo.jcr.UserJcrUtils;
 import org.argeo.security.UserAdminService;
 import org.springframework.dao.DataAccessException;
 import org.springframework.security.userdetails.UserDetails;
@@ -21,21 +36,20 @@ import org.springframework.security.userdetails.UsernameNotFoundException;
  * desktop). TODO integrate with JCR user / groups
  */
 public class OsJcrUserAdminService implements UserAdminService {
-       private String securityWorkspace = "security";
        private Repository repository;
 
-       private Session securitySession;
+       // private Session adminSession;
 
        public void init() {
-               try {
-                       securitySession = repository.login(securityWorkspace);
-               } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot initialize", e);
-               }
+               // try {
+               // adminSession = repository.login();
+               // } catch (RepositoryException e) {
+               // throw new ArgeoException("Cannot initialize", e);
+               // }
        }
 
        public void destroy() {
-               JcrUtils.logoutQuietly(securitySession);
+               // JcrUtils.logoutQuietly(adminSession);
        }
 
        /** <b>Unsupported</b> */
@@ -68,15 +82,19 @@ public class OsJcrUserAdminService implements UserAdminService {
        public UserDetails loadUserByUsername(String username)
                        throws UsernameNotFoundException, DataAccessException {
                if (getSPropertyUsername().equals(username)) {
-                       Node userProfile = SecurityJcrUtils.getUserProfile(securitySession,
-                                       username);
                        JcrUserDetails userDetails;
+                       Session adminSession = null;
                        try {
+                               adminSession = repository.login();
+                               Node userProfile = UserJcrUtils.getUserProfile(adminSession,
+                                               username);
                                userDetails = new JcrUserDetails(userProfile, "",
                                                OsJcrAuthenticationProvider.getBaseAuthorities());
                        } catch (RepositoryException e) {
                                throw new ArgeoException("Cannot retrieve user profile for "
                                                + username, e);
+                       } finally {
+                               JcrUtils.logoutQuietly(adminSession);
                        }
                        return userDetails;
                } else {
@@ -122,9 +140,4 @@ public class OsJcrUserAdminService implements UserAdminService {
        public void setRepository(Repository repository) {
                this.repository = repository;
        }
-
-       public void setSecurityWorkspace(String securityWorkspace) {
-               this.securityWorkspace = securityWorkspace;
-       }
-
 }