From a70a7a7ed50798912000877077bcdfd2e51439ca Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 1 Feb 2016 14:51:59 +0000 Subject: [PATCH] Imagegen: - Return 403 if no code specified in QR or RA - Mode parameter for html or text in RA - Set RA text-mode character encoding - Fix up test page --- .../main/java/net/i2p/imagegen/QRServlet.java | 6 ++---- .../net/i2p/imagegen/RandomArtServlet.java | 11 +++++++--- .../webapp/src/main/webapp/index.html | 20 ++++++++++++++----- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/QRServlet.java b/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/QRServlet.java index 8f0321521..f98f9b929 100644 --- a/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/QRServlet.java +++ b/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/QRServlet.java @@ -69,10 +69,8 @@ public class QRServlet extends HttpServlet { String codeParam = request.getParameter(PARAM_IDENTICON_CODE_SHORT); boolean codeSpecified = codeParam != null && codeParam.length() > 0; if (!codeSpecified) { - // TODO 404 - codeParam="http://stats.i2p/?i2paddresshelper=Okd5sN9hFWx-sr0HH8EFaxkeIMi6PC5eGTcjM1KB7uQ0ffCUJ2nVKzcsKZFHQc7pLONjOs2LmG5H-2SheVH504EfLZnoB7vxoamhOMENnDABkIRGGoRisc5AcJXQ759LraLRdiGSR0WTHQ0O1TU0hAz7vAv3SOaDp9OwNDr9u902qFzzTKjUTG5vMTayjTkLo2kOwi6NVchDeEj9M7mjj5ySgySbD48QpzBgcqw1R27oIoHQmjgbtbmV2sBL-2Tpyh3lRe1Vip0-K0Sf4D-Zv78MzSh8ibdxNcZACmZiVODpgMj2ejWJHxAEz41RsfBpazPV0d38Mfg4wzaS95R5hBBo6SdAM4h5vcZ5ESRiheLxJbW0vBpLRd4mNvtKOrcEtyCvtvsP3FpA-6IKVswyZpHgr3wn6ndDHiVCiLAQZws4MsIUE1nkfxKpKtAnFZtPrrB8eh7QO9CkH2JBhj7bG0ED6mV5~X5iqi52UpsZ8gnjZTgyG5pOF8RcFrk86kHxAAAA"; - //response.setStatus(403); - //return; + response.setStatus(403); + return; } String sizeParam = request.getParameter(PARAM_IDENTICON_SIZE_SHORT); diff --git a/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/RandomArtServlet.java b/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/RandomArtServlet.java index a11c2a3a0..bd86b7756 100644 --- a/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/RandomArtServlet.java +++ b/apps/imagegen/imagegen/webapp/src/main/java/net/i2p/imagegen/RandomArtServlet.java @@ -24,6 +24,7 @@ public class RandomArtServlet extends HttpServlet { private static final long serialVersionUID = -3507466186902317988L; private static final String PARAM_IDENTICON_CODE_SHORT = "c"; + private static final String PARAM_IDENTICON_MODE_SHORT = "m"; private static final long DEFAULT_IDENTICON_EXPIRES_IN_MILLIS = 24 * 60 * 60 * 1000; private int version = 1; private long identiconExpiresInMillis = DEFAULT_IDENTICON_EXPIRES_IN_MILLIS; @@ -34,8 +35,12 @@ public class RandomArtServlet extends HttpServlet { String codeParam = request.getParameter(PARAM_IDENTICON_CODE_SHORT); boolean codeSpecified = codeParam != null && codeParam.length() > 0; - if (!codeSpecified) - codeParam="stats.i2p"; + if (!codeSpecified) { + response.setStatus(403); + return; + } + String modeParam = request.getParameter(PARAM_IDENTICON_MODE_SHORT); + boolean html = modeParam == null || modeParam.startsWith("h"); String identiconETag = IdenticonUtil.getIdenticonETag(codeParam.hashCode(), 0, version); String requestETag = request.getHeader("If-None-Match"); @@ -47,13 +52,13 @@ public class RandomArtServlet extends HttpServlet { if (h == null) { response.setStatus(403); } else { - boolean html = true; StringBuilder buf = new StringBuilder(512); if (html) { response.setContentType("text/html"); buf.append(""); } else { response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); } buf.append(RandomArt.gnutls_key_fingerprint_randomart(h.getData(), "SHA", 256, "", true, html)); if (html) diff --git a/apps/imagegen/imagegen/webapp/src/main/webapp/index.html b/apps/imagegen/imagegen/webapp/src/main/webapp/index.html index e1ecc73ba..a90963623 100644 --- a/apps/imagegen/imagegen/webapp/src/main/webapp/index.html +++ b/apps/imagegen/imagegen/webapp/src/main/webapp/index.html @@ -1,14 +1,16 @@ - - Identicon Canvas Test + Image Generator Webapp -

Server-side ID

+

Image Generator Webapp

+

This is the webapp that creates identification images.

+ +

Identicon Test

@@ -16,8 +18,16 @@ -

Server-side QR

- +

QR Test

+ + +

Random Art Test

+ +