Improve remoting.
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 16 Dec 2016 13:40:46 +0000 (13:40 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 16 Dec 2016 13:40:46 +0000 (13:40 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@9361 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.cms/src/org/argeo/cms/internal/kernel/DataHttp.java

index acde18dc5fff8606f39da222e17f5ad76527eb96..c08b5180b578a6cdf26c192c8ba7c1e1d70b2333 100644 (file)
@@ -392,17 +392,19 @@ class DataHttp implements KernelConstants {
                        if (log.isTraceEnabled())
                                log.trace("Login to workspace " + (workspace == null ? "<default>" : workspace) + " in web session "
                                                + request.getSession().getId());
-                       LoginContext lc = (LoginContext) request.getAttribute(NodeConstants.LOGIN_CONTEXT_USER);
-                       if (lc == null)
-                               throw new CmsException("No login context available");
+//                     LoginContext lc = (LoginContext) request.getAttribute(NodeConstants.LOGIN_CONTEXT_USER);
+//                     if (lc == null)
+//                             throw new CmsException("No login context available");
                        try {
+                               LoginContext lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, new HttpRequestCallbackHandler(request));
+                               lc.login();
                                return Subject.doAs(lc.getSubject(), new PrivilegedExceptionAction<Session>() {
                                        @Override
                                        public Session run() throws Exception {
                                                return repository.login(workspace);
                                        }
                                });
-                       } catch (PrivilegedActionException e) {
+                       } catch (Exception e) {
                                throw new CmsException("Cannot log in to JCR", e);
                        }
                        // return repository.login(workspace);