Bläddra i källkod

send email immediate for tokens

Jason Rivard 8 år sedan
förälder
incheckning
bca2d4cd03

+ 1 - 1
src/main/java/password/pwm/svc/token/TokenService.java

@@ -685,7 +685,7 @@ public class TokenService implements PwmService {
 
             pwmApplication.getIntruderManager().mark(RecordType.TOKEN_DEST, toAddress, null);
 
-            pwmApplication.getEmailQueue().submitEmail(new EmailItemBean(
+            pwmApplication.getEmailQueue().submitEmailImmediate(new EmailItemBean(
                     toAddress,
                     configuredEmailSetting.getFrom(),
                     configuredEmailSetting.getSubject(),

+ 1 - 0
src/main/java/password/pwm/util/localdb/LocalDB.java

@@ -134,6 +134,7 @@ public interface LocalDB {
         OTP_SECRET(true),
         TOKENS(true),
         INTRUDER(true),
+        AUDIT_QUEUE(true),
         AUDIT_EVENTS(true),
         USER_CACHE(true),
         TEMP(false),

+ 5 - 0
src/main/java/password/pwm/util/localdb/WorkQueueProcessor.java

@@ -166,6 +166,11 @@ public class WorkQueueProcessor<W extends Serializable> {
         }
     }
 
+    public void submitImmediate(final W workItem) {
+        final ItemWrapper<W> itemWrapper = new ItemWrapper<>(Instant.now(), workItem, idGenerator.nextID());
+        sendAndQueueIfNecessary(itemWrapper);
+    }
+
     public void submit(final W workItem)
             throws PwmOperationalException
     {

+ 26 - 1
src/main/java/password/pwm/util/queue/EmailQueueManager.java

@@ -209,6 +209,27 @@ public class EmailQueueManager implements PwmService {
             final MacroMachine macroMachine
     )
             throws PwmUnrecoverableException
+    {
+        submitEmailImpl(emailItem, userInfo, macroMachine, false);
+    }
+
+    public void submitEmailImmediate(
+            final EmailItemBean emailItem,
+            final UserInfo userInfo,
+            final MacroMachine macroMachine
+    )
+            throws PwmUnrecoverableException
+    {
+        submitEmailImpl(emailItem, userInfo, macroMachine, true);
+    }
+
+    private void submitEmailImpl(
+            final EmailItemBean emailItem,
+            final UserInfo userInfo,
+            final MacroMachine macroMachine,
+            final boolean immediate
+    )
+            throws PwmUnrecoverableException
     {
         if (emailItem == null) {
             return;
@@ -237,7 +258,11 @@ public class EmailQueueManager implements PwmService {
         }
 
         try {
-            workQueueProcessor.submit(finalBean);
+            if (immediate) {
+                workQueueProcessor.submitImmediate(finalBean);
+            } else {
+                workQueueProcessor.submit(finalBean);
+            }
         } catch (PwmOperationalException e) {
             LOGGER.warn("unable to add email to queue: " + e.getMessage());
         }

+ 1 - 1
src/main/resources/password/pwm/AppProperty.properties

@@ -221,7 +221,7 @@ peoplesearch.view.detail.links=
 queue.email.retryTimeoutMs=10000
 queue.email.maxAgeMs=86400000
 queue.email.maxCount=100000
-queue.email.maxThreads=-1
+queue.email.maxThreads=0
 queue.sms.retryTimeoutMs=10000
 queue.sms.maxAgeMs=86400000
 queue.sms.maxCount=100000