import org.argeo.app.odk.OrxManifestName;
import org.argeo.cms.auth.RemoteAuthUtils;
import org.argeo.cms.servlet.ServletHttpRequest;
+import org.argeo.cms.servlet.ServletUtils;
+import org.argeo.cms.util.CsvWriter;
+import org.argeo.cms.util.DigestUtils;
import org.argeo.jcr.Jcr;
import org.argeo.jcr.JcrException;
-import org.argeo.util.CsvWriter;
-import org.argeo.util.DigestUtils;
/** Describe additional files. */
public class OdkManifestServlet extends HttpServlet {
if (pathInfo.startsWith("//"))
pathInfo = pathInfo.substring(1);
- String serverName = req.getServerName();
- int serverPort = req.getServerPort();
- String protocol = serverPort == 443 || req.isSecure() ? "https" : "http";
+// String serverName = req.getServerName();
+// int serverPort = req.getServerPort();
+// String protocol = serverPort == 443 || req.isSecure() ? "https" : "http";
+// String baseServer = protocol + "://" + serverName
+// + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort);
+ StringBuilder baseServer = ServletUtils.getRequestUrlBase(req);
Session session = RemoteAuthUtils.doAs(() -> Jcr.login(repository, null), new ServletHttpRequest(req));
MessageDigest messageDigest = MessageDigest.getInstance(DigestUtils.MD5);
// TODO cache a temp file ?
- try (DigestOutputStream out = new DigestOutputStream(new NullOutputStream(),
+ try (DigestOutputStream out = new DigestOutputStream(NullOutputStream.NULL_OUTPUT_STREAM,
messageDigest)) {
writeMediaFile(out, target, mimeType, charset);
writer.append("<hash>");
writer.append("md5sum:" + DigestUtils.toHexString(out.getMessageDigest().digest()));
writer.append("</hash>");
}
-
-// try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-// session.exportDocumentView(target.getPath(), out, true, false);
-// String fileCsum = DigestUtils.digest(DigestUtils.MD5, out.toByteArray());
-// writer.append("<hash>");
-// writer.append("md5sum:" + fileCsum);
-// writer.append("</hash>");
-// }
- writer.append("<downloadUrl>" + protocol + "://" + serverName
- + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort)
- + "/api/odk/formManifest" + file.getPath() + "</downloadUrl>");
+ writer.append("<downloadUrl>" + baseServer + "/api/odk/formManifest" + file.getPath()
+ + "</downloadUrl>");
}
writer.append("</mediaFile>");
}
Node target = node.getProperty(Property.JCR_ID).getNode();
writeMediaFile(resp.getOutputStream(), target, mimeType, charset);
-// try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-// session.exportDocumentView(target.getPath(), out, true, false);
-// System.out.println(new String(out.toByteArray(), StandardCharsets.UTF_8));
-// resp.getOutputStream().write(out.toByteArray());
-// }
} else {
throw new IllegalArgumentException("Unsupported node " + node);
}