diff --git a/hsarback/.project b/hsarback/.project
index 9d84720..32766d2 100644
--- a/hsarback/.project
+++ b/hsarback/.project
@@ -5,6 +5,11 @@
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
org.eclipse.jdt.core.javabuilder
@@ -13,5 +18,6 @@
org.eclipse.jdt.core.javanature
+ org.eclipse.wst.common.project.facet.core.nature
diff --git a/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java b/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
index bbd931e..b025a81 100644
--- a/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
+++ b/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
@@ -1,5 +1,6 @@
package de.hsadmin.mods.dom;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,6 +44,9 @@ public class DomainProcessorFactory implements EntityProcessorFactory {
mainProcessor.appendProcessor(hiveName, createApacheVHostSetupProcessor(em, dom), "Setup Apache VHost");
mainProcessor.appendProcessor(hiveName, createACMEBotProcessor(em, dom), "Setup ACMEBot");
mainProcessor.appendProcessor(hiveName, createTriggerAcmebotProcessor(em, dom), "Trigger ACMEBot");
+ for (String queueName : config.getProperty("queues.mail").split(",")) {
+ mainProcessor.appendProcessor(queueName, createPostgreyConfigurationUpdateProcessor(em), queueName + ".hostsharing.net");
+ }
return mainProcessor;
}
@@ -53,6 +57,10 @@ public class DomainProcessorFactory implements EntityProcessorFactory {
final Processor triggerAcmebotProcessor = createTriggerAcmebotProcessor(em, dom);
final WaitingTasksProcessor processor = new WaitingTasksProcessor(
new CompoundProcessor(apacheVHostSetupProcessor, letencryptSetupProcessor, triggerAcmebotProcessor));
+ final Config config = Config.getInstance();
+ for (String queueName : config.getProperty("queues.mail").split(",")) {
+ processor.appendProcessor(queueName, createPostgreyConfigurationUpdateProcessor(em), queueName + ".hostsharing.net");
+ }
return processor;
}
@@ -68,6 +76,9 @@ public class DomainProcessorFactory implements EntityProcessorFactory {
}
mainProcessor.appendProcessor(dom.getHiveName(), createApacheVHostDeleteProcessor(dom), "remove apache vhost");
mainProcessor.appendProcessor(dom.getHiveName(), createACMEBotProcessor(em, dom), "remove letsencrypt config");
+ for (String queueName : config.getProperty("queues.mail").split(",")) {
+ mainProcessor.appendProcessor(queueName, createPostgreyConfigurationUpdateProcessor(em), queueName + ".hostsharing.net");
+ }
return mainProcessor;
}
@@ -290,4 +301,27 @@ public class DomainProcessorFactory implements EntityProcessorFactory {
new ShellProcessor("mv /etc/hostsharing/acmebot/domain.properties.tmp /etc/hostsharing/acmebot/domain.properties"));
}
+ private Processor createPostgreyConfigurationUpdateProcessor(EntityManager em) throws ProcessorException {
+ final List whitelistDoms = new ArrayList();
+ final Query query = em.createQuery("SELECT DISTINCT dom FROM Domains dom WHERE NOT EXISTS "
+ + "(SELECT postgreyDom FROM Domains postgreyDom "
+ + "WHERE postgreyDom.domainoptions.name = :option"
+ + "AND postgreyDom.name = dom.name)");
+ query.setParameter("option", "greylisting");
+ final List> result = query.getResultList();
+ for (Object dom : result) {
+ if (dom instanceof Domain) {
+ whitelistDoms.add((Domain) dom);
+ }
+ }
+ final HashMap templateVars = new HashMap();
+ templateVars.put("whitelist", whitelistDoms);
+ return new CompoundProcessor(
+ new VelocityProcessor("/de/hsadmin/mods/dom/postgrey-whitelist-recipients.vm", templateVars,
+ "/etc/postgrey/whitelist_recipients.tmp", true),
+ new ShellProcessor(
+ " ( diff -q /etc/postgrey/whitelist_recipients.tmp /etc/postgrey/whitelist_recipients && rm /etc/postgrey/whitelist_recipients.tmp ) "
+ + "|| ( mv /etc/postgrey/whitelist_recipients.tmp /etc/postgrey/whitelist_recipients && invoke-rc.d postgrey reload )"));
+ }
+
}
diff --git a/hsarback/src/de/hsadmin/mods/email/EMailAddressProcessorFactory.java b/hsarback/src/de/hsadmin/mods/email/EMailAddressProcessorFactory.java
index 7281d86..dbb969e 100644
--- a/hsarback/src/de/hsadmin/mods/email/EMailAddressProcessorFactory.java
+++ b/hsarback/src/de/hsadmin/mods/email/EMailAddressProcessorFactory.java
@@ -1,7 +1,5 @@
package de.hsadmin.mods.email;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import javax.persistence.EntityManager;
@@ -13,7 +11,6 @@ import de.hsadmin.core.qserv.EntityProcessorFactory;
import de.hsadmin.core.qserv.Processor;
import de.hsadmin.core.qserv.ProcessorException;
import de.hsadmin.core.qserv.ShellProcessor;
-import de.hsadmin.core.qserv.VelocityProcessor;
import de.hsadmin.core.qserv.WaitingTasksProcessor;
import de.hsadmin.core.util.Config;
import de.hsadmin.mods.dom.Domain;
@@ -97,32 +94,9 @@ public class EMailAddressProcessorFactory implements EntityProcessorFactory {
return result.size();
}
- private Processor createPostgreyConfigurationUpdateProcessor(EntityManager em) throws ProcessorException {
- final List whitelistDoms = new ArrayList();
- final Query query = em.createQuery("SELECT DISTINCT dom FROM Domains dom WHERE NOT EXISTS "
- + "(SELECT postgreyDom FROM Domains postgreyDom "
- + "WHERE postgreyDom.domainoptions.name = :option"
- + "AND postgreyDom.name = dom.name)");
- query.setParameter("option", "greylisting");
- final List> result = query.getResultList();
- for (Object dom : result) {
- if (dom instanceof Domain) {
- whitelistDoms.add((Domain) dom);
- }
- }
- final HashMap templateVars = new HashMap();
- templateVars.put("whitelist", whitelistDoms);
- return new CompoundProcessor(
- new VelocityProcessor("/de/hsadmin/mods/dom/postgrey-whitelist-recipients.vm", templateVars,
- "/etc/postgrey/whitelist_recipients.tmp", true),
- new ShellProcessor(
- " ( diff -q /etc/postgrey/whitelist_recipients.tmp /etc/postgrey/whitelist_recipients && rm /etc/postgrey/whitelist_recipients.tmp ) "
- + "|| ( mv /etc/postgrey/whitelist_recipients.tmp /etc/postgrey/whitelist_recipients && invoke-rc.d postgrey reload )"));
- }
-
private Processor createMailinSetupProcessor(EntityManager em, Domain dom, Pac pac) throws ProcessorException {
final String inetAddr = pac.getCurINetAddr().getInetAddr();
- final CompoundProcessor cp = new CompoundProcessor(createPostgreyConfigurationUpdateProcessor(em));
+ final CompoundProcessor cp = new CompoundProcessor();
cp.appendProcessor(new ShellProcessor("postmap -r -i /etc/postfix-mailin/relaydomains",
dom.getName() + " anything\n" +
"." + dom.getName() + " anything\n"));
@@ -133,7 +107,7 @@ public class EMailAddressProcessorFactory implements EntityProcessorFactory {
}
private Processor createMailinUnsetupProcessor(EntityManager em, Domain dom) throws ProcessorException {
- final CompoundProcessor cp = new CompoundProcessor(createPostgreyConfigurationUpdateProcessor(em));
+ final CompoundProcessor cp = new CompoundProcessor();
cp.appendProcessor(new ShellProcessor("postmap -d - /etc/postfix-mailin/relaydomains",
dom.getName() + "\n" +
"." + dom.getName() + "\n"));