]> WPIA git - gigi.git/commitdiff
Merge "upd: improve digest explanation and make SHA512 default"
authorBenny Baumann <BenBE1987@gmx.net>
Sun, 9 Oct 2016 16:20:16 +0000 (18:20 +0200)
committerGerrit Code Review <gigi-system@dogcraft.de>
Sun, 9 Oct 2016 16:20:16 +0000 (18:20 +0200)
13 files changed:
debian/gigi-proxy.service
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/database/DatabaseConnection.java
src/org/cacert/gigi/database/tableStructure.sql
src/org/cacert/gigi/database/upgrade/from_24.sql [new file with mode: 0644]
src/org/cacert/gigi/dbObjects/CertificateOwner.java
src/org/cacert/gigi/dbObjects/Organisation.java
src/org/cacert/gigi/dbObjects/User.java
src/org/cacert/gigi/output/template/MailFooter.templ
src/org/cacert/gigi/pages/account/certs/CertificateRequest.java
src/org/cacert/gigi/pages/orga/CreateOrgForm.java
src/org/cacert/gigi/pages/orga/ViewOrgPage.java
tests/org/cacert/gigi/pages/orga/TestOrgManagement.java

index 3708845d4069525a2ac6d43ce4e98ed00229ab2b..88d18f755fb7baa0de14270f6f368762996cd25a 100644 (file)
@@ -19,3 +19,4 @@ NoNewPrivileges=yes
 
 [Install]
 WantedBy=multi-user.target
+Also=gigi-proxy.socket
index 7f6b3c18893bcb3ec7851e1739de38fdd7384424..2f4c27dd0f16fba0df323819e6a10d8f5bff7f07 100644 (file)
@@ -315,17 +315,7 @@ public final class Gigi extends HttpServlet {
 
     }
 
-    private static String staticTemplateVarHttp = "http://" + ServerConstants.getStaticHostNamePort();
-
-    private static String staticTemplateVarHttps = "https://" + ServerConstants.getStaticHostNamePortSecure();
-
-    private static String getStaticTemplateVar(boolean https) {
-        if (https) {
-            return staticTemplateVarHttps;
-        } else {
-            return staticTemplateVarHttp;
-        }
-    }
+    private static String staticTemplateVar = "//" + ServerConstants.getStaticHostNamePort();
 
     @Override
     protected void service(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
@@ -429,7 +419,7 @@ public final class Gigi extends HttpServlet {
             vars.put(Menu.AUTH_VALUE, currentAuthContext);
             vars.put("menu", rootMenu);
             vars.put("title", lang.getTranslation(p.getTitle()));
-            vars.put("static", getStaticTemplateVar(isSecure));
+            vars.put("static", staticTemplateVar);
             vars.put("year", Calendar.getInstance().get(Calendar.YEAR));
             vars.put("content", content);
             if (currentAuthContext != null) {
index 672dbe30e336c5f6d4479485115d484eeed8b488..1535ac3133a0e62865121c59a3a57952455aa9fb 100644 (file)
@@ -122,7 +122,7 @@ public class DatabaseConnection {
 
     }
 
-    public static final int CURRENT_SCHEMA_VERSION = 24;
+    public static final int CURRENT_SCHEMA_VERSION = 25;
 
     public static final int CONNECTION_TIMEOUT = 24 * 60 * 60;
 
index 7fbded1bfba2ee2675621aa1523eb1a4d4ae7f44..8b1a77d6d0910a2e912f1aeff5582e395fbd8b3a 100644 (file)
@@ -27,7 +27,7 @@ DROP TABLE IF EXISTS "organisations";
 CREATE TABLE IF NOT EXISTS "organisations" (
   "id" int NOT NULL,
   "name" varchar(64) NOT NULL,
-  "state" varchar(2) NOT NULL,
+  "country" varchar(2) NOT NULL,
   "province" varchar(128) NOT NULL,
   "city" varchar(128) NOT NULL,
   "contactEmail" varchar(100) NOT NULL,
@@ -374,7 +374,7 @@ CREATE TABLE "schemeVersion" (
   "version" smallint NOT NULL,
   PRIMARY KEY ("version")
 );
-INSERT INTO "schemeVersion" (version)  VALUES(24);
+INSERT INTO "schemeVersion" (version)  VALUES(25);
 
 DROP TABLE IF EXISTS `passwordResetTickets`;
 CREATE TABLE `passwordResetTickets` (
diff --git a/src/org/cacert/gigi/database/upgrade/from_24.sql b/src/org/cacert/gigi/database/upgrade/from_24.sql
new file mode 100644 (file)
index 0000000..f690cb2
--- /dev/null
@@ -0,0 +1 @@
+ALTER TABLE "organisations" RENAME COLUMN "state" TO "country";
index 0b072d1d6eaffc65bef265d9541dc493937b833f..a66229fe6bdefa90a8d6ef9df07d1f9341e87d11 100644 (file)
@@ -37,27 +37,33 @@ public abstract class CertificateOwner implements IdCachable, Serializable {
     }
 
     public static synchronized CertificateOwner getById(int id) {
-        CertificateOwner u = myCache.get(id);
-        if (u == null) {
-            try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT *, `users`.`id` AS uid, `organisations`.`id` AS oid FROM `certOwners` LEFT JOIN `users` ON `users`.`id`=`certOwners`.`id` LEFT JOIN `organisations` ON `organisations`.`id` = `certOwners`.`id` WHERE `certOwners`.`id`=? AND `deleted` is null")) {
-                ps.setInt(1, id);
-                try (GigiResultSet rs = ps.executeQuery()) {
-                    if ( !rs.next()) {
-                        return null;
-                    }
-                    if (rs.getString("uid") != null) {
-                        myCache.put(u = new User(rs));
-                    } else if (rs.getString("oid") != null) {
-                        myCache.put(u = new Organisation(rs));
-                    } else {
-                        System.err.println("Malformed cert owner: " + id);
-                    }
-                } catch (GigiApiException e) {
-                    throw new Error(e);
-                }
+        CertificateOwner cached = myCache.get(id);
+        if (cached != null) {
+            return cached;
+        }
+
+        try (GigiPreparedStatement psU = new GigiPreparedStatement("SELECT *, `users`.`id` AS uid FROM `certOwners` INNER JOIN `users` ON `users`.`id`=`certOwners`.`id` WHERE `certOwners`.`id`=? AND `deleted` is null")) {
+            psU.setInt(1, id);
+            GigiResultSet rsU = psU.executeQuery();
+            if (rsU.next()) {
+                return myCache.put(new User(rsU));
             }
+        } catch (GigiApiException e) {
+            throw new Error(e);
         }
-        return u;
+
+        try (GigiPreparedStatement psO = new GigiPreparedStatement("SELECT *, `organisations`.`id` AS oid FROM `certOwners` INNER JOIN `organisations` ON `organisations`.`id`=`certOwners`.`id` WHERE `certOwners`.`id`=? AND `deleted` is null")) {
+            psO.setInt(1, id);
+            GigiResultSet rsO = psO.executeQuery();
+            if (rsO.next()) {
+                return myCache.put(new Organisation(rsO));
+            }
+        } catch (GigiApiException e) {
+            throw new Error(e);
+        }
+
+        System.err.println("Malformed cert owner: " + id);
+        return null;
     }
 
     public Domain[] getDomains() {
index 9c57049a969ed4a2e18045183bc92cefaeb1b75d..cb6601e68dffb2457dd42140b30f2372650ce675 100644 (file)
@@ -81,7 +81,7 @@ public class Organisation extends CertificateOwner {
         this.optionalName = optionalName;
         this.postalAddress = postalAddress;
         int id = getId();
-        try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, contactEmail=?, optional_name=?, postal_address=?, creator=?")) {
+        try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO organisations SET id=?, name=?, country=?, province=?, city=?, contactEmail=?, optional_name=?, postal_address=?, creator=?")) {
             ps.setInt(1, id);
             ps.setString(2, name);
             ps.setString(3, country.getCode());
@@ -100,7 +100,7 @@ public class Organisation extends CertificateOwner {
     protected Organisation(GigiResultSet rs) throws GigiApiException {
         super(rs.getInt("id"));
         name = rs.getString("name");
-        country = Country.getCountryByCode(rs.getString("state"), CountryCodeType.CODE_2_CHARS);
+        country = Country.getCountryByCode(rs.getString("country"), CountryCodeType.CODE_2_CHARS);
         province = rs.getString("province");
         city = rs.getString("city");
         email = rs.getString("contactEmail");
@@ -112,7 +112,7 @@ public class Organisation extends CertificateOwner {
         return name;
     }
 
-    public Country getState() {
+    public Country getCountry() {
         return country;
     }
 
@@ -219,7 +219,7 @@ public class Organisation extends CertificateOwner {
                 cert.revoke();
             }
         }
-        try (GigiPreparedStatement ps = new GigiPreparedStatement("UPDATE `organisations` SET `name`=?, `state`=?, `province`=?, `city`=? WHERE `id`=?")) {
+        try (GigiPreparedStatement ps = new GigiPreparedStatement("UPDATE `organisations` SET `name`=?, `country`=?, `province`=?, `city`=? WHERE `id`=?")) {
             ps.setString(1, o);
             ps.setString(2, c.getCode());
             ps.setString(3, st);
index e72908be0f0b27fcddacbe45f1fc258c95d0a9ef..b4bfcc1cece2bea5b14f21505256b7dbd68c9e95 100644 (file)
@@ -68,22 +68,15 @@ public class User extends CertificateOwner {
 
     private Country residenceCountry;
 
-    protected User(GigiResultSet rs) {
+    protected User(GigiResultSet rs) throws GigiApiException {
         super(rs.getInt("id"));
-        updateName(rs);
-    }
 
-    private void updateName(GigiResultSet rs) {
         dob = new DayDate(rs.getDate("dob"));
         email = rs.getString("email");
         preferredName = Name.getById(rs.getInt("preferredName"));
 
-        try {
-            if (rs.getString("Country") != null) {
-                residenceCountry = Country.getCountryByCode(rs.getString("Country"), Country.CountryCodeType.CODE_2_CHARS);
-            }
-        } catch (GigiApiException e) {
-            throw new Error(e);
+        if (rs.getString("country") != null) {
+            residenceCountry = Country.getCountryByCode(rs.getString("Country"), Country.CountryCodeType.CODE_2_CHARS);
         }
 
         String localeStr = rs.getString("language");
index ca8f594c309ace9a048e38c814fdbbce9befc37c..9e2f11ddae8437349b0fa964d1b351cad9c0de16 100644 (file)
@@ -2,8 +2,7 @@
 <?=_Kind regards?>,
 <?=_SomeCA.org?>
 
---
-
+-- 
 <?=_This message has automatically been sent by the system.?>
 
 <?=_All emails originating from this domain use S/MIME protection through digital signatures and optional encryption.?> \
index e49d7b9a7ad8a90092f967457f34d97ecfe50242..5edf362e4877ef2c505ca5c6636e60b91b9b0b42 100644 (file)
@@ -426,7 +426,7 @@ public class CertificateRequest {
         if (ctx.getTarget() instanceof Organisation) {
             Organisation org = (Organisation) ctx.getTarget();
             subject.put("O", org.getName());
-            subject.put("C", org.getState().getCode());
+            subject.put("C", org.getCountry().getCode());
             subject.put("ST", org.getProvince());
             subject.put("L", org.getCity());
             if (ou != null) {
index 4abcafa363c77e9b85c64d6f10222efb6ac8a9f4..7b69822549d16860cd37da089a967933b0d28f07 100644 (file)
@@ -48,7 +48,7 @@ public class CreateOrgForm extends Form {
         result = t;
         o = t.getName();
 
-        cs = new CountrySelector("C", false, t.getState());
+        cs = new CountrySelector("C", false, t.getCountry());
 
         st = t.getProvince();
         l = t.getCity();
index 887761076759dd37df1fd5170f2cfa481172f7d8..0924a8981aa6e74d1325435a7acd339259649ed5 100644 (file)
@@ -117,7 +117,7 @@ public class ViewOrgPage extends ManagedMultiFormPage {
                 Organisation org = orgas[count++];
                 vars.put("id", Integer.toString(org.getId()));
                 vars.put("name", org.getName());
-                vars.put("country", org.getState().getCode());
+                vars.put("country", org.getCountry().getCode());
                 return true;
             }
         };
index 65951dc8fe7abab569a9dbdc2e4ee73f526f3740..523ce88b050a7858bbd9b6b2708330c774032fa3 100644 (file)
@@ -149,7 +149,7 @@ public class TestOrgManagement extends OrgTest {
         Organisation o1 = createUniqueOrg();
         o1.updateCertData("name", Country.getCountryByCode("DE", CountryCodeType.CODE_2_CHARS), DIFFICULT_CHARS, "Köln");
         assertEquals("name", o1.getName());
-        assertEquals("DE", o1.getState().getCode());
+        assertEquals("DE", o1.getCountry().getCode());
         assertEquals(DIFFICULT_CHARS, o1.getProvince());
         assertEquals("Köln", o1.getCity());
         o1.delete();
@@ -246,7 +246,7 @@ public class TestOrgManagement extends OrgTest {
      */
     private String upCertData(Organisation o1, String o, String c, String province, String ct) throws IOException, MalformedURLException, UnsupportedEncodingException {
         if (c == null) {
-            c = o1.getState().getCode();
+            c = o1.getCountry().getCode();
         }
         return executeBasicWebInteraction(cookie, ViewOrgPage.DEFAULT_PATH + "/" + o1.getId(), "action=updateCertificateData&O=" + o + "&C=" + c + "&ST=" + province + "&L=" + ct, 0);
     }