X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FDataHttp.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FDataHttp.java;h=c08b5180b578a6cdf26c192c8ba7c1e1d70b2333;hb=3fc22751d5f0023316497dcc321d470936dcd9fb;hp=acde18dc5fff8606f39da222e17f5ad76527eb96;hpb=edbc1ae2658298cef6c5441ba557ac9b8e65ae6c;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataHttp.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataHttp.java index acde18dc5..c08b5180b 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataHttp.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataHttp.java @@ -392,17 +392,19 @@ class DataHttp implements KernelConstants { if (log.isTraceEnabled()) log.trace("Login to workspace " + (workspace == null ? "" : 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() { @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);