X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2FThreadBoundJcrSessionFactory.java;h=ed2857ad5cf3112085dbb51e57b1b93627c49dad;hb=02693451a9af0a877ab97c59681fb2f32976155a;hp=9996b7bd1f8e48e6ab6a07b1767c5f03b7300d01;hpb=a668345e948f3f6da7475279bbe330e129fb1841;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ThreadBoundJcrSessionFactory.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ThreadBoundJcrSessionFactory.java index 9996b7bd1..ed2857ad5 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ThreadBoundJcrSessionFactory.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ThreadBoundJcrSessionFactory.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * 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; + } + }