]> WPIA git - gigi.git/commitdiff
upd: add properties "emailProvider.smtpHost" + "emailProvider.smtpPort"
authorFelix Dörre <felix@dogcraft.de>
Tue, 13 Oct 2015 10:41:28 +0000 (12:41 +0200)
committerFelix Dörre <felix@dogcraft.de>
Tue, 13 Oct 2015 10:57:46 +0000 (12:57 +0200)
to allow setting a target SMTP server.

src/org/cacert/gigi/dbObjects/Certificate.java
src/org/cacert/gigi/email/Sendmail.java
tests/org/cacert/gigi/email/TestSendmail.java

index ac8d5aabc33aa65ec981f416d5e50504a8d4b981..7cbdeb592fa9f298c4f52c61de4ee267018b76e7 100644 (file)
@@ -374,7 +374,7 @@ public class Certificate {
 
         // TODO caching?
         try {
-            String concat = "group_concat(concat('/', `name`, '=', REPLACE(REPLACE(value, '\\\\', '\\\\\\\\'), '/', '\\\\/')))";
+            String concat = "string_agg(concat('/', `name`, '=', REPLACE(REPLACE(value, '\\\\', '\\\\\\\\'), '/', '\\\\/')), '')";
             GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT certs.id, " + concat + " as subject, md, csr_name, crt_name,memid, profile, certs.serial FROM `certs` LEFT JOIN `certAvas` ON `certAvas`.`certId`=certs.id WHERE certs.id=? GROUP BY certs.id");
             ps.setInt(1, id);
             GigiResultSet rs = ps.executeQuery();
index 285eee6b4bbbf83f17f3b63c56b51c779af90f7b..78d5a0bade0f9dc52f93de4377f738a53bff3019 100644 (file)
@@ -19,7 +19,14 @@ import org.cacert.gigi.util.ServerConstants;
 
 public class Sendmail extends EmailProvider {
 
-    protected Sendmail(Properties props) {}
+    private final String targetHost;
+
+    private final int targetPort;
+
+    protected Sendmail(Properties props) {
+        targetHost = props.getProperty("emailProvider.smtpHost", "localhost");
+        targetPort = Integer.parseInt(props.getProperty("emailProvider.smtpPort", "25"));
+    }
 
     private static final Pattern NON_ASCII = Pattern.compile("[^a-zA-Z0-9 .-\\[\\]!_@]");
 
@@ -28,7 +35,7 @@ public class Sendmail extends EmailProvider {
 
         String[] bits = from.split(",");
 
-        try (Socket smtp = new Socket("localhost", 25); PrintWriter out = new PrintWriter(new OutputStreamWriter(smtp.getOutputStream(), "UTF-8")); BufferedReader in = new BufferedReader(new InputStreamReader(smtp.getInputStream(), "UTF-8"));) {
+        try (Socket smtp = new Socket(targetHost, targetPort); PrintWriter out = new PrintWriter(new OutputStreamWriter(smtp.getOutputStream(), "UTF-8")); BufferedReader in = new BufferedReader(new InputStreamReader(smtp.getInputStream(), "UTF-8"));) {
             readSMTPResponse(in, 220);
             out.print("HELO www.cacert.org\r\n");
             out.flush();
index 83cb9aaaf51b581da36edc6b46a4742fdb0e1248..3535abb006193919f20ebd288ac55dc70995576b 100644 (file)
@@ -107,8 +107,11 @@ public class TestSendmail extends ConfiguredTest {
     }
 
     private void initSelfsign() throws GeneralSecurityException, CertificateException, IOException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException {
+        assumeNotNull(getTestProps().getProperty("emailProvider.smtpHost"), getTestProps().getProperty("emailProvider.smtpPort"));
         Properties prop = new Properties();
         prop.setProperty("emailProvider", "org.cacert.gigi.email.Sendmail");
+        prop.setProperty("emailProvider.smtpHost", getTestProps().getProperty("emailProvider.smtpHost"));
+        prop.setProperty("emailProvider.smtpPort", getTestProps().getProperty("emailProvider.smtpPort"));
         KeyPair kp = generateKeypair();
         X509CertInfo info = new X509CertInfo();
         // Add all mandatory attributes