projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Reactivate JCR webdav and remote servlets
[lgpl/argeo-commons.git]
/
jcr
/
org.argeo.cms.jcr
/
src
/
org
/
argeo
/
cms
/
jcr
/
internal
/
servlet
/
CmsSessionProvider.java
diff --git
a/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/servlet/CmsSessionProvider.java
b/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/servlet/CmsSessionProvider.java
index 0f27fd005dca58aa2f17eea8d95ed59f40702159..4e067eea25a01653e1e7a0fbb318687628497091 100644
(file)
--- a/
jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/servlet/CmsSessionProvider.java
+++ b/
jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/servlet/CmsSessionProvider.java
@@
-17,9
+17,11
@@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import org.apache.jackrabbit.server.SessionProvider;
import javax.servlet.http.HttpServletRequest;
import org.apache.jackrabbit.server.SessionProvider;
-import org.argeo.api.cms.CmsSession;
-import org.argeo.api.cms.CmsLog;
import org.argeo.api.cms.CmsConstants;
import org.argeo.api.cms.CmsConstants;
+import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.CmsSession;
+import org.argeo.cms.auth.RemoteAuthUtils;
+import org.argeo.cms.servlet.ServletHttpRequest;
import org.argeo.jcr.JcrUtils;
/**
import org.argeo.jcr.JcrUtils;
/**
@@
-46,9
+48,8
@@
public class CmsSessionProvider implements SessionProvider, Serializable {
// if (workspace == null)
// return null;
// if (workspace == null)
// return null;
-// CmsSessionImpl cmsSession = WebCmsSessionImpl.getCmsSession(request);
- // FIXME retrieve CMS session
- CmsSession cmsSession = null;
+ CmsSession cmsSession = RemoteAuthUtils.getCmsSession(new ServletHttpRequest(request));
+ // CmsSessionImpl cmsSession = WebCmsSessionImpl.getCmsSession(request);
if (log.isTraceEnabled()) {
log.trace("Get JCR session from " + cmsSession);
}
if (log.isTraceEnabled()) {
log.trace("Get JCR session from " + cmsSession);
}
@@
-80,6
+81,7
@@
public class CmsSessionProvider implements SessionProvider, Serializable {
private CmsDataSession(CmsSession cmsSession) {
this.cmsSession = cmsSession;
private CmsDataSession(CmsSession cmsSession) {
this.cmsSession = cmsSession;
+ cmsSession.addOnCloseCallback((sess) -> close());
}
public Session newDataSession(String cn, String workspace, Repository repository) {
}
public Session newDataSession(String cn, String workspace, Repository repository) {
@@
-160,8
+162,7
@@
public class CmsSessionProvider implements SessionProvider, Serializable {
"CMS session " + cmsSession.getUuid() + " is not valid since " + cmsSession.getEnd());
}
"CMS session " + cmsSession.getUuid() + " is not valid since " + cmsSession.getEnd());
}
- private void close() {
- // FIXME class this when CMS session is closed
+ protected void close() {
synchronized (this) {
// TODO check data session in use ?
for (String path : dataSessions.keySet())
synchronized (this) {
// TODO check data session in use ?
for (String path : dataSessions.keySet())