diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java index 7774564..4d56343 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java @@ -13,5 +13,7 @@ public class SystemEmailResponse { private Integer smtpPort; + private Boolean useSSL; + private LocalDateTime createAt; } diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java index 2d6a490..3094e16 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java @@ -21,4 +21,7 @@ public class SystemEmailUpdateRequest { @Max(65535L) private Integer smtpPort; + @NotNull + private Boolean useSSL; + } diff --git a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java index e59eb82..e24b584 100644 --- a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java +++ b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java @@ -79,6 +79,7 @@ public class SystemService { response.setSmtpPort(mail.getSmtpPort()); response.setUsername(mail.getUsername()); response.setCreateAt(mail.getCreateAt()); + response.setUseSSL(mail.getUseSsl()); return response; }); } diff --git a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java index 6ac829c..a3d835b 100644 --- a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java +++ b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java @@ -30,7 +30,11 @@ public class MailSender { } sender.setUsername(properties.getUsername()); sender.setPassword(properties.getPassword()); - sender.setProtocol("smtp"); + if (properties.getUseSsl()) { + sender.setProtocol("smtps"); + } else { + sender.setProtocol("smtp"); + } sender.setDefaultEncoding(StandardCharsets.UTF_8.name()); return sender; } diff --git a/dao/build.gradle b/dao/build.gradle index f9babf2..88721e3 100644 --- a/dao/build.gradle +++ b/dao/build.gradle @@ -52,7 +52,7 @@ jooq { forcedTypes { forcedType { name = 'BOOLEAN' - includeExpression = 'deleted|enabled|is.*' + includeExpression = 'deleted|enabled|is.*|use_ssl' includeTypes = '.*' } forcedType { @@ -62,7 +62,7 @@ jooq { } forcedType { userType = 'com.databasir.dao.enums.OAuthAppType' - converter = 'com.databasir.dao.converter.OAuthAppTypeConverter' + converter = 'com.databasir.dao.converter.OAuthAppTypeConverter' includeExpression = 'app_type' includeTypes = '.*' } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java index 39978db..1b60115 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java @@ -15,7 +15,7 @@ import org.jooq.ForeignKey; import org.jooq.Identity; import org.jooq.Name; import org.jooq.Record; -import org.jooq.Row7; +import org.jooq.Row8; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -72,6 +72,11 @@ public class SysMail extends TableImpl { */ public final TableField SMTP_PORT = createField(DSL.name("smtp_port"), SQLDataType.INTEGER.nullable(false), this, ""); + /** + * The column databasir.sys_mail.use_ssl. + */ + public final TableField USE_SSL = createField(DSL.name("use_ssl"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.inline("0", SQLDataType.BOOLEAN)), this, ""); + /** * The column databasir.sys_mail.update_at. */ @@ -157,11 +162,11 @@ public class SysMail extends TableImpl { } // ------------------------------------------------------------------------- - // Row7 type methods + // Row8 type methods // ------------------------------------------------------------------------- @Override - public Row7 fieldsRow() { - return (Row7) super.fieldsRow(); + public Row8 fieldsRow() { + return (Row8) super.fieldsRow(); } } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java index 966ad6e..47ccedf 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java @@ -21,6 +21,7 @@ public class SysMailPojo implements Serializable { private String password; private String smtpHost; private Integer smtpPort; + private Boolean useSsl; private LocalDateTime updateAt; private LocalDateTime createAt; @@ -32,6 +33,7 @@ public class SysMailPojo implements Serializable { this.password = value.password; this.smtpHost = value.smtpHost; this.smtpPort = value.smtpPort; + this.useSsl = value.useSsl; this.updateAt = value.updateAt; this.createAt = value.createAt; } @@ -42,6 +44,7 @@ public class SysMailPojo implements Serializable { String password, String smtpHost, Integer smtpPort, + Boolean useSsl, LocalDateTime updateAt, LocalDateTime createAt ) { @@ -50,6 +53,7 @@ public class SysMailPojo implements Serializable { this.password = password; this.smtpHost = smtpHost; this.smtpPort = smtpPort; + this.useSsl = useSsl; this.updateAt = updateAt; this.createAt = createAt; } @@ -124,6 +128,20 @@ public class SysMailPojo implements Serializable { this.smtpPort = smtpPort; } + /** + * Getter for databasir.sys_mail.use_ssl. + */ + public Boolean getUseSsl() { + return this.useSsl; + } + + /** + * Setter for databasir.sys_mail.use_ssl. + */ + public void setUseSsl(Boolean useSsl) { + this.useSsl = useSsl; + } + /** * Getter for databasir.sys_mail.update_at. */ @@ -161,6 +179,7 @@ public class SysMailPojo implements Serializable { sb.append(", ").append(password); sb.append(", ").append(smtpHost); sb.append(", ").append(smtpPort); + sb.append(", ").append(useSsl); sb.append(", ").append(updateAt); sb.append(", ").append(createAt); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java index 1aff42f..0f15c23 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java @@ -11,8 +11,8 @@ import java.time.LocalDateTime; import org.jooq.Field; import org.jooq.Record1; -import org.jooq.Record7; -import org.jooq.Row7; +import org.jooq.Record8; +import org.jooq.Row8; import org.jooq.impl.UpdatableRecordImpl; @@ -20,7 +20,7 @@ import org.jooq.impl.UpdatableRecordImpl; * This class is generated by jOOQ. */ @SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class SysMailRecord extends UpdatableRecordImpl implements Record7 { +public class SysMailRecord extends UpdatableRecordImpl implements Record8 { private static final long serialVersionUID = 1L; @@ -94,32 +94,46 @@ public class SysMailRecord extends UpdatableRecordImpl implements return (Integer) get(4); } + /** + * Setter for databasir.sys_mail.use_ssl. + */ + public void setUseSsl(Boolean value) { + set(5, value); + } + + /** + * Getter for databasir.sys_mail.use_ssl. + */ + public Boolean getUseSsl() { + return (Boolean) get(5); + } + /** * Setter for databasir.sys_mail.update_at. */ public void setUpdateAt(LocalDateTime value) { - set(5, value); + set(6, value); } /** * Getter for databasir.sys_mail.update_at. */ public LocalDateTime getUpdateAt() { - return (LocalDateTime) get(5); + return (LocalDateTime) get(6); } /** * Setter for databasir.sys_mail.create_at. */ public void setCreateAt(LocalDateTime value) { - set(6, value); + set(7, value); } /** * Getter for databasir.sys_mail.create_at. */ public LocalDateTime getCreateAt() { - return (LocalDateTime) get(6); + return (LocalDateTime) get(7); } // ------------------------------------------------------------------------- @@ -132,17 +146,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } // ------------------------------------------------------------------------- - // Record7 type implementation + // Record8 type implementation // ------------------------------------------------------------------------- @Override - public Row7 fieldsRow() { - return (Row7) super.fieldsRow(); + public Row8 fieldsRow() { + return (Row8) super.fieldsRow(); } @Override - public Row7 valuesRow() { - return (Row7) super.valuesRow(); + public Row8 valuesRow() { + return (Row8) super.valuesRow(); } @Override @@ -171,12 +185,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public Field field6() { - return SysMail.SYS_MAIL.UPDATE_AT; + public Field field6() { + return SysMail.SYS_MAIL.USE_SSL; } @Override public Field field7() { + return SysMail.SYS_MAIL.UPDATE_AT; + } + + @Override + public Field field8() { return SysMail.SYS_MAIL.CREATE_AT; } @@ -206,12 +225,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public LocalDateTime component6() { - return getUpdateAt(); + public Boolean component6() { + return getUseSsl(); } @Override public LocalDateTime component7() { + return getUpdateAt(); + } + + @Override + public LocalDateTime component8() { return getCreateAt(); } @@ -241,12 +265,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public LocalDateTime value6() { - return getUpdateAt(); + public Boolean value6() { + return getUseSsl(); } @Override public LocalDateTime value7() { + return getUpdateAt(); + } + + @Override + public LocalDateTime value8() { return getCreateAt(); } @@ -281,19 +310,25 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public SysMailRecord value6(LocalDateTime value) { - setUpdateAt(value); + public SysMailRecord value6(Boolean value) { + setUseSsl(value); return this; } @Override public SysMailRecord value7(LocalDateTime value) { + setUpdateAt(value); + return this; + } + + @Override + public SysMailRecord value8(LocalDateTime value) { setCreateAt(value); return this; } @Override - public SysMailRecord values(Integer value1, String value2, String value3, String value4, Integer value5, LocalDateTime value6, LocalDateTime value7) { + public SysMailRecord values(Integer value1, String value2, String value3, String value4, Integer value5, Boolean value6, LocalDateTime value7, LocalDateTime value8) { value1(value1); value2(value2); value3(value3); @@ -301,6 +336,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements value5(value5); value6(value6); value7(value7); + value8(value8); return this; } @@ -318,7 +354,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements /** * Create a detached, initialised SysMailRecord */ - public SysMailRecord(Integer id, String username, String password, String smtpHost, Integer smtpPort, LocalDateTime updateAt, LocalDateTime createAt) { + public SysMailRecord(Integer id, String username, String password, String smtpHost, Integer smtpPort, Boolean useSsl, LocalDateTime updateAt, LocalDateTime createAt) { super(SysMail.SYS_MAIL); setId(id); @@ -326,6 +362,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements setPassword(password); setSmtpHost(smtpHost); setSmtpPort(smtpPort); + setUseSsl(useSsl); setUpdateAt(updateAt); setCreateAt(createAt); } @@ -342,6 +379,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements setPassword(value.getPassword()); setSmtpHost(value.getSmtpHost()); setSmtpPort(value.getSmtpPort()); + setUseSsl(value.getUseSsl()); setUpdateAt(value.getUpdateAt()); setCreateAt(value.getCreateAt()); } diff --git a/dao/src/main/resources/db/migration/V1__init.sql b/dao/src/main/resources/db/migration/V1__init.sql index 1db5027..c2ae585 100644 --- a/dao/src/main/resources/db/migration/V1__init.sql +++ b/dao/src/main/resources/db/migration/V1__init.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS sys_mail password TEXT NOT NULL, smtp_host VARCHAR(512) NOT NULL, smtp_port INT NOT NULL, + use_ssl BOOLEAN NOT NULL DEFAULT FALSE, update_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ) CHARSET utf8mb4