]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ThreadBoundJcrSessionFactory.java
Introduce compare properties
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jcr / src / main / java / org / argeo / jcr / ThreadBoundJcrSessionFactory.java
index 9996b7bd1f8e48e6ab6a07b1767c5f03b7300d01..ed2857ad5cf3112085dbb51e57b1b93627c49dad 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * 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.jcr;
 
 import java.lang.reflect.InvocationHandler;
@@ -10,6 +26,7 @@ import java.util.List;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -17,6 +34,7 @@ import org.argeo.ArgeoException;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.FactoryBean;
 
+/** Proxy JCR sessions and attach them to calling threads. */
 public class ThreadBoundJcrSessionFactory implements FactoryBean,
                DisposableBean {
        private final static Log log = LogFactory
@@ -30,6 +48,9 @@ public class ThreadBoundJcrSessionFactory implements FactoryBean,
        private boolean destroying = false;
        private final Session proxiedSession;
 
+       private String defaultUsername = "demo";
+       private String defaultPassword = "demo";
+
        public ThreadBoundJcrSessionFactory() {
                Class<?>[] interfaces = { Session.class };
                proxiedSession = (Session) Proxy.newProxyInstance(getClass()
@@ -62,7 +83,9 @@ public class ThreadBoundJcrSessionFactory implements FactoryBean,
 
        protected Session login() {
                try {
-                       Session sess = repository.login();
+                       SimpleCredentials sc = new SimpleCredentials(defaultUsername,
+                                       defaultPassword.toCharArray());
+                       Session sess = repository.login(sc);
                        if (log.isTraceEnabled())
                                log.trace("Log in to JCR session " + sess + "; userId="
                                                + sess.getUserID());
@@ -102,4 +125,12 @@ public class ThreadBoundJcrSessionFactory implements FactoryBean,
                this.repository = repository;
        }
 
+       public void setDefaultUsername(String defaultUsername) {
+               this.defaultUsername = defaultUsername;
+       }
+
+       public void setDefaultPassword(String defaultPassword) {
+               this.defaultPassword = defaultPassword;
+       }
+
 }