X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=knowledge%2Forg.argeo.support.odk%2Fsrc%2Forg%2Fargeo%2Fsupport%2Fodk%2Fservlet%2FOdkFormListServlet.java;h=f829c12f92eba407afd9238c6fcceaabb2454a5a;hp=c8a66bf14a806a2c20899a5e9c4f9735fcd8686c;hb=780fe06055c67f30a1a0b55746f3cd4595532756;hpb=1c3823f1290458bfe0ae125e34d641467a9bd18b diff --git a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java index c8a66bf..f829c12 100644 --- a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java +++ b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java @@ -2,7 +2,6 @@ package org.argeo.support.odk.servlet; import java.io.IOException; import java.io.Writer; -import java.security.AccessControlContext; import java.time.ZoneId; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; @@ -18,7 +17,6 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.query.Query; import javax.jcr.query.QueryResult; -import javax.security.auth.Subject; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -33,6 +31,7 @@ import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrUtils; import org.argeo.jcr.JcrxApi; import org.argeo.support.odk.OdkForm; +import org.argeo.support.odk.OdkNames; import org.argeo.support.odk.OrxListType; /** Lists available forms. */ @@ -59,17 +58,13 @@ public class OdkFormListServlet extends HttpServlet { String pathInfo = req.getPathInfo(); - Subject subject = Subject - .getSubject((AccessControlContext) req.getAttribute(AccessControlContext.class.getName())); - log.debug("SERVLET CONTEXT: " + subject); - Session session = ServletAuthUtils.doAs(() -> Jcr.login(repository, NodeConstants.SYS_WORKSPACE), req); // session = NodeUtils.openDataAdminSession(repository, NodeConstants.SYS_WORKSPACE); Writer writer = resp.getWriter(); writer.append(""); writer.append(""); boolean oldApproach = false; - if (oldApproach) { + if (!oldApproach) { try { Query query; @@ -99,9 +94,13 @@ public class OdkFormListServlet extends HttpServlet { Node node = nit.nextNode(); if (node.isNodeType(OrxListType.xform.get())) { sb.append(""); - sb.append("" + node.getNode("h:html").getIdentifier() + ""); + sb.append("" + + node.getNode(OdkNames.H_HTML + "/h:head/xforms:model/xforms:instance/xforms:data") + .getProperty("id").getString() + + ""); sb.append("" + Jcr.getTitle(node) + ""); sb.append("" + versionFormatter.format(JcrUtils.getModified(node)) + ""); +// sb.append("" + versionFormatter.format(JcrUtils.getModified(node)) + ""); sb.append("md5:" + JcrxApi.getChecksum(node, JcrxApi.MD5) + ""); if (node.hasProperty(Property.JCR_DESCRIPTION)) sb.append("" + node.getProperty(Property.JCR_DESCRIPTION).getString() + ""); @@ -129,6 +128,7 @@ public class OdkFormListServlet extends HttpServlet { e.printStackTrace(); // TODO error message // resp.sendError(500); + resp.sendError(503); } finally { Jcr.logout(session); }