Class EMailConfiguration

java.lang.Object
de.gustavblass.fsu.fmi.roombooking.configuration.EMailConfiguration
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@Configuration public class EMailConfiguration extends Object implements org.springframework.context.ApplicationContextAware
Settings for the EMailService.
  • Field Details

    • applicationContext

      private org.springframework.context.ApplicationContext applicationContext
    • eMailVerificationTokenValidity

      @NonNull private @NonNull Duration eMailVerificationTokenValidity
      The timespan after which an EMailVerificationToken shall expire.
    • domainWhitelist

      @NonNull private final @NonNull List<String> domainWhitelist
      If this List is not empty, only these domains are permitted in the Actors' e-mail addresses. Overrides the domainBlacklist.
    • domainBlacklist

      @NonNull private final @NonNull List<String> domainBlacklist
      These domains are explicitly not permitted as part of the Actors' e-mail addresses. Less important than the domainWhitelist.
  • Constructor Details

    • EMailConfiguration

      public EMailConfiguration(@Nullable @Value("${application.verificationToken.email.validity:}") @Nullable Duration eMailVerificationTokenValidity, @Nullable @Value("${application.mail.domains.whitelist:}") @Nullable String[] domainWhitelist, @Nullable @Value("${application.mail.domains.blacklist:}") @Nullable String[] domainBlacklist)
      Constructs a new EMailConfiguration.
      Parameters:
      eMailVerificationTokenValidity - The eMailVerificationTokenValidity.
      domainWhitelist - The domainWhitelist.
      domainBlacklist - The domainBlacklist.
  • Method Details

    • eMailVerificationTokenValidity

      @Bean @Contract(pure=true) @NonNull public @NonNull Duration eMailVerificationTokenValidity()
      Returns:
      The eMailVerificationTokenValidity.
    • eMailDomainWhitelist

      @Bean @Contract(pure=true) @NonNull public @NonNull @Unmodifiable List<String> eMailDomainWhitelist()
      Returns:
      An unmodifiable copy of the domainWhitelist.
    • eMailDomainBlacklist

      @Bean @Contract(pure=true) @NonNull public @NonNull @Unmodifiable List<String> eMailDomainBlacklist()
      Returns:
      An unmodifiable copy of the domainBlacklist.
    • eMailTemplateEngine

      @Bean("eMailTemplateEngine") @NonNull public @NonNull org.thymeleaf.TemplateEngine eMailTemplateEngine(@NonNull @NonNull org.springframework.context.MessageSource messageSource)
      Creates a new TemplateEngine for the EMailService.
      Parameters:
      messageSource - Used for i18n (internationalisation) in e-mails.
      Returns:
      The new TemplateEngine suitable for parsing e-mail templates.
    • textTemplateResolver

      @NonNull private @NonNull org.thymeleaf.templateresolver.ITemplateResolver textTemplateResolver()
      Returns:
      A new SpringResourceTemplateResolver that the eMailTemplateEngine(MessageSource) is provided with, in order to find plain-text e-mail templates.
    • htmlTemplateResolver

      @NonNull private @NonNull org.thymeleaf.templateresolver.ITemplateResolver htmlTemplateResolver()
      Returns:
      A new SpringResourceTemplateResolver that the eMailTemplateEngine(MessageSource) is provided with, in order to find rich HTML e-mail templates.
    • setApplicationContext

      public void setApplicationContext(@NonNull @NonNull org.springframework.context.ApplicationContext applicationContext)
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware