X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjcr%2FSecureThreadBoundSession.java;h=db2cfccbc692abd434386638d09b6ce6b06d47e5;hb=149023e5969377045847bbecf24b0898b18a67a9;hp=aa3b156795f0796b351cd06d8d4015c8ed364548;hpb=832bee8656e427eef8580b6d24bfdcf4526fce95;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/SecureThreadBoundSession.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/SecureThreadBoundSession.java index aa3b15679..db2cfccbc 100644 --- a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/SecureThreadBoundSession.java +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/SecureThreadBoundSession.java @@ -5,14 +5,30 @@ import javax.jcr.Session; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.jcr.ThreadBoundJcrSessionFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; import org.springframework.security.Authentication; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.userdetails.UserDetails; -public class SecureThreadBoundSession extends ThreadBoundJcrSessionFactory { +/** + * Thread bounded JCR session factory which checks authentication and is + * autoconfigured in Spring. + */ +public class SecureThreadBoundSession extends ThreadBoundJcrSessionFactory + implements FactoryBean, InitializingBean, DisposableBean { private final static Log log = LogFactory .getLog(SecureThreadBoundSession.class); + public void afterPropertiesSet() throws Exception { + init(); + } + + public void destroy() throws Exception { + dispose(); + } + @Override protected Session preCall(Session session) { Authentication authentication = SecurityContextHolder.getContext()