]> WPIA git - gigi.git/commitdiff
fix: use sprintf-translation correctly
authorFelix Dörre <felix@dogcraft.de>
Mon, 30 May 2016 12:29:56 +0000 (14:29 +0200)
committerFelix Dörre <felix@dogcraft.de>
Mon, 30 May 2016 12:53:44 +0000 (14:53 +0200)
Change-Id: I481185508f92f9f32866adb97a3e1f10f53ba130

src/org/cacert/gigi/output/template/SprintfCommand.java
src/org/cacert/gigi/pages/account/certs/CertificateRequest.java
src/org/cacert/gigi/pages/admin/support/FindDomainForm.java
src/org/cacert/gigi/pages/admin/support/FindUserForm.java
src/org/cacert/gigi/util/Notary.java

index 07a0b8cc303175ce0ac0e855d3be58ddaba24a1a..385da25cae38a60f1b61a80ce1a39a6ee896a139 100644 (file)
@@ -1,7 +1,9 @@
 package org.cacert.gigi.output.template;
 
 import java.io.PrintWriter;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -50,7 +52,7 @@ public final class SprintfCommand implements Translatable {
         store = var.toArray(new String[var.size()]);
     }
 
-    private final Pattern replacant = Pattern.compile("\\{([0-9]+)\\}");
+    private static final Pattern replacant = Pattern.compile("\\{([0-9]+)\\}");
 
     @Override
     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
@@ -79,4 +81,14 @@ public final class SprintfCommand implements Translatable {
     public void addTranslations(Collection<String> s) {
         s.add(text);
     }
+
+    public static Outputable createSimple(String msg, String... vars) {
+        HashMap<String, Object> scope = new HashMap<>();
+        String[] store = new String[vars.length];
+        for (int i = 0; i < vars.length; i++) {
+            scope.put("autoVar" + i, vars[i]);
+            store[i] = "${autoVar" + i + "}";
+        }
+        return new Scope(new SprintfCommand(msg, Arrays.asList(store)), scope);
+    }
 }
index eba64f17a484a8dff96078cadd496e5f03a15057..aafd869c9b6274ab8261f47988e43a1f1952a6a6 100644 (file)
@@ -7,7 +7,6 @@ import java.security.PublicKey;
 import java.security.interfaces.DSAPublicKey;
 import java.security.interfaces.ECPublicKey;
 import java.security.interfaces.RSAPublicKey;
-import java.util.Arrays;
 import java.util.Base64;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,7 +28,6 @@ import org.cacert.gigi.dbObjects.CertificateProfile.PropertyTemplate;
 import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.Organisation;
 import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.output.template.Scope;
 import org.cacert.gigi.output.template.SprintfCommand;
 import org.cacert.gigi.util.AuthorizationContext;
 import org.cacert.gigi.util.PEM;
@@ -356,10 +354,8 @@ public class CertificateRequest {
                     }
                 }
             }
-            HashMap<String, Object> vars = new HashMap<>();
-            vars.put("SAN", san.getType().toString().toLowerCase() + ":" + san.getName());
-            error.mergeInto(new GigiApiException(new Scope(new SprintfCommand(//
-                    "The requested Subject alternate name \"{0}\" has been removed.", Arrays.asList("${SAN}")), vars)));
+            error.mergeInto(new GigiApiException(SprintfCommand.createSimple(//
+                    "The requested Subject alternate name \"{0}\" has been removed.", san.getType().toString().toLowerCase() + ":" + san.getName())));
         }
         SANs = filteredSANs;
     }
index aafd5b9d6ef807f652534859d72cbaa83bfc815f..1096f3d7ab204915643ebb1d80bc532dc57e1af7 100644 (file)
@@ -1,7 +1,6 @@
 package org.cacert.gigi.pages.admin.support;
 
 import java.io.PrintWriter;
-import java.util.Arrays;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
@@ -35,13 +34,13 @@ public class FindDomainForm extends Form {
             try {
                 d = Domain.getById(Integer.parseInt(request.substring(1)));
             } catch (IllegalArgumentException e) {
-                throw (new GigiApiException(new SprintfCommand("No personal domains found matching the id %s", Arrays.asList(request.substring(1)))));
+                throw new GigiApiException(SprintfCommand.createSimple("No personal domains found matching the id {0}", request.substring(1)));
             }
         } else {
             d = Domain.searchUserIdByDomain(request);
         }
         if (d == null) {
-            throw (new GigiApiException(new SprintfCommand("No personal domains found matching %s", Arrays.asList(request))));
+            throw new GigiApiException(SprintfCommand.createSimple("No personal domains found matching {0}", request));
         }
         res = d.getOwner();
         return true;
index d88f93ab5d15ee77d5820f495a72e4b6b6e200e2..21276dba2e8bc1743001a5f70002e4b7acfbd46f 100644 (file)
@@ -1,7 +1,6 @@
 package org.cacert.gigi.pages.admin.support;
 
 import java.io.PrintWriter;
-import java.util.Arrays;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
@@ -30,7 +29,7 @@ public class FindUserForm extends Form {
     public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
         User[] users = User.findByEmail(req.getParameter("email"));
         if (users.length == 0) {
-            throw (new GigiApiException(new SprintfCommand("No users found matching %s", Arrays.asList(req.getParameter("email")))));
+            throw new GigiApiException(SprintfCommand.createSimple("No users found matching {0}", req.getParameter("email")));
         }
         this.users = users;
         return true;
index 144bf6d88a464a0ffa9a8367dc6435992b06b1fb..901e5ef62e46891479bf7af5f12d827d0bd4a1db 100644 (file)
@@ -1,7 +1,6 @@
 package org.cacert.gigi.util;
 
 import java.text.ParseException;
-import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -137,7 +136,7 @@ public class Notary {
             } else if (type == AssuranceType.TTP_ASSISTED) {
                 assureTTP(assurer, assuree, awarded, location, date);
             } else {
-                throw new GigiApiException(new SprintfCommand("Unknown Assurance type: %s", Arrays.asList(type.toString())));
+                throw new GigiApiException(SprintfCommand.createSimple("Unknown Assurance type: {0}", type.toString()));
             }
             assurer.invalidateMadeAssurances();
             assuree.invalidateReceivedAssurances();