You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2022/12/09 13:23:00 UTC

[syncope] branch master updated (b58b43f9e7 -> 9e817338a8)

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git


    from b58b43f9e7 Upgrading asciidoctorj-pdf
     new c86ec83df9 Updating downloads site page for release
     new 2f4882cf8d Adjusting Spring doc refs
     new 9e817338a8 Prefer spring-boot-starter-mail over custom conf

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../syncope/core/logic/IdMLogicTestContext.java    |  8 ++
 core/idrepo/logic/pom.xml                          |  5 ++
 .../syncope/core/logic/IdRepoLogicTestContext.java |  8 ++
 core/provisioning-java/pom.xml                     | 13 ++--
 .../provisioning/java/ProvisioningContext.java     | 85 ---------------------
 .../provisioning/java/ProvisioningProperties.java  | 87 ----------------------
 .../provisioning/java/ProvisioningTestContext.java |  8 ++
 core/starter/src/main/resources/core.properties    | 20 +++--
 .../src/main/resources/core-embedded.properties    |  4 +-
 .../syncope/fit/core/NotificationITCase.java       |  3 +-
 .../reference-guide/concepts/typemanagement.adoc   |  2 +-
 .../reference-guide/configuration/dbms.adoc        | 16 ++--
 .../reference-guide/configuration/deployment.adoc  | 10 +--
 .../reference-guide/configuration/email.adoc       | 59 +++++----------
 .../reference-guide/usage/customization.adoc       |  6 +-
 src/site/xdoc/downloads.xml                        | 64 ++++++++--------
 16 files changed, 116 insertions(+), 282 deletions(-)


[syncope] 01/03: Updating downloads site page for release

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit c86ec83df9b7173640997a5eaa883d982f99ba39
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Dec 9 10:45:21 2022 +0100

    Updating downloads site page for release
---
 src/site/xdoc/downloads.xml | 64 ++++++++++++++++++++++-----------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/site/xdoc/downloads.xml b/src/site/xdoc/downloads.xml
index c9b6163f09..b08af3c287 100644
--- a/src/site/xdoc/downloads.xml
+++ b/src/site/xdoc/downloads.xml
@@ -81,8 +81,8 @@ under the License.
         </table>
       </subsection>
 
-      <subsection name="2.1.12 Fusion">
-        <p>Release date: August 5th 2022</p>
+      <subsection name="2.1.13 Fusion">
+        <p>Release date: December 9th 2022</p>
         <p>
           <a href="https://cwiki.apache.org/confluence/display/SYNCOPE/Fusion">Release notes</a>
         </p>
@@ -110,92 +110,92 @@ under the License.
           <tbody>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/syncope-2.1.12-source-release.zip">syncope-2.1.12-source-release.zip</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/syncope-2.1.13-source-release.zip">syncope-2.1.13-source-release.zip</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-2.1.12-source-release.zip.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-2.1.12-source-release.zip.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-2.1.13-source-release.zip.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-2.1.13-source-release.zip.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/syncope-standalone-2.1.12-distribution.zip">syncope-standalone-2.1.12-distribution.zip</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/syncope-standalone-2.1.13-distribution.zip">syncope-standalone-2.1.13-distribution.zip</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-standalone-2.1.12-distribution.zip.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-standalone-2.1.12-distribution.zip.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-standalone-2.1.13-distribution.zip.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-standalone-2.1.13-distribution.zip.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/apache-syncope-2.1.12.deb">apache-syncope-2.1.12.deb</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/apache-syncope-2.1.13.deb">apache-syncope-2.1.13.deb</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/apache-syncope-2.1.12.deb.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/apache-syncope-2.1.12.deb.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/apache-syncope-2.1.13.deb.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/apache-syncope-2.1.13.deb.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/apache-syncope-console-2.1.12.deb">apache-syncope-console-2.1.12.deb</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/apache-syncope-console-2.1.13.deb">apache-syncope-console-2.1.13.deb</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/apache-syncope-console-2.1.12.deb.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/apache-syncope-console-2.1.12.deb.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/apache-syncope-console-2.1.13.deb.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/apache-syncope-console-2.1.13.deb.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/apache-syncope-enduser-2.1.12.deb">apache-syncope-enduser-2.1.12.deb</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/apache-syncope-enduser-2.1.13.deb">apache-syncope-enduser-2.1.13.deb</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/apache-syncope-enduser-2.1.12.deb.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/apache-syncope-enduser-2.1.12.deb.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/apache-syncope-enduser-2.1.13.deb.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/apache-syncope-enduser-2.1.13.deb.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/syncope-installer-2.1.12-uber.jar">syncope-installer-2.1.12-uber.jar</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/syncope-installer-2.1.13-uber.jar">syncope-installer-2.1.13-uber.jar</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-installer-2.1.12-uber.jar.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-installer-2.1.12-uber.jar.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-installer-2.1.13-uber.jar.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-installer-2.1.13-uber.jar.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/syncope-client-cli-2.1.12.zip">syncope-client-cli-2.1.12.zip</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/syncope-client-cli-2.1.13.zip">syncope-client-cli-2.1.13.zip</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-client-cli-2.1.12.zip.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-client-cli-2.1.12.zip.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-client-cli-2.1.13.zip.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-client-cli-2.1.13.zip.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/syncope-core-upgrade-2.1.12.zip">syncope-core-upgrade-2.1.12.zip</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/syncope-core-upgrade-2.1.13.zip">syncope-core-upgrade-2.1.13.zip</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-core-upgrade-2.1.12.zip.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-core-upgrade-2.1.12.zip.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-core-upgrade-2.1.13.zip.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-core-upgrade-2.1.13.zip.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/org.apache.syncope.ide.eclipse.site-2.1.12.zip">org.apache.syncope.ide.eclipse.site-2.1.12.zip</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/org.apache.syncope.ide.eclipse.site-2.1.13.zip">org.apache.syncope.ide.eclipse.site-2.1.13.zip</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/org.apache.syncope.ide.eclipse.site-2.1.12.zip.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/org.apache.syncope.ide.eclipse.site-2.1.12.zip.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/org.apache.syncope.ide.eclipse.site-2.1.13.zip.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/org.apache.syncope.ide.eclipse.site-2.1.13.zip.sha512">sha512</a>
               </td>
             </tr>
             <tr>
               <td>
-                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.12/syncope-ide-netbeans-2.1.12.nbm">syncope-ide-netbeans-2.1.12.nbm</a>
+                <a href="http://www.apache.org/dyn/closer.lua/syncope/2.1.13/syncope-ide-netbeans-2.1.13.nbm">syncope-ide-netbeans-2.1.13.nbm</a>
               </td>
               <td>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-ide-netbeans-2.1.12.nbm.asc">asc</a>
-                <a href="https://downloads.apache.org/syncope/2.1.12/syncope-ide-netbeans-2.1.12.nbm.sha512">sha512</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-ide-netbeans-2.1.13.nbm.asc">asc</a>
+                <a href="https://downloads.apache.org/syncope/2.1.13/syncope-ide-netbeans-2.1.13.nbm.sha512">sha512</a>
               </td>
             </tr>
           </tbody>


[syncope] 02/03: Adjusting Spring doc refs

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 2f4882cf8d7e36e4307d9339bc747f7ca349002d
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Dec 9 14:20:31 2022 +0100

    Adjusting Spring doc refs
---
 .../reference-guide/concepts/typemanagement.adoc         |  2 +-
 .../asciidoc/reference-guide/configuration/dbms.adoc     | 16 ++++++++--------
 .../reference-guide/configuration/deployment.adoc        | 10 +++++-----
 .../asciidoc/reference-guide/usage/customization.adoc    |  6 +++---
 4 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc b/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
index 93d7fd5212..c2ed3ae217 100644
--- a/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
@@ -48,7 +48,7 @@ https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/DateForma
 *** enumeration values (mandatory)
 *** enumeration labels (optional, values will be used alternatively)
 ** `Encrypted`
-*** secret key (stored or referenced as https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-property-source-abstraction[Spring property^])
+*** secret key (stored or referenced as https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/core.html#beans-property-source-abstraction[Spring property^])
 *** cipher algorithm
 *** whether transparent encryption is to be enabled, e.g. attribute values are stored as encrypted but available as
 cleartext on-demand (requires AES ciphering)
diff --git a/src/main/asciidoc/reference-guide/configuration/dbms.adoc b/src/main/asciidoc/reference-guide/configuration/dbms.adoc
index 490003257b..8b208ec6ec 100644
--- a/src/main/asciidoc/reference-guide/configuration/dbms.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/dbms.adoc
@@ -44,7 +44,7 @@ provisioning.quartz.sql=tables_postgres.sql
 as `core/src/main/resources/core-postgres.properties`.
 
 Do not forget to include `postgres` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [WARNING]
@@ -96,7 +96,7 @@ provisioning.quartz.sql=tables_postgres.sql
 as `core/src/main/resources/core-pgjsonb.properties`.
 
 Do not forget to include `pgjsonb` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [WARNING]
@@ -129,7 +129,7 @@ provisioning.quartz.sql=tables_mysql_innodb.sql
 as `core/src/main/resources/core-mysql.properties`.
 
 Do not forget to include `mysql` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [CAUTION]
@@ -188,7 +188,7 @@ provisioning.quartz.sql=tables_mysql_innodb.sql
 as `core/src/main/resources/core-myjson.properties`.
 
 Do not forget to include `myjson` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [WARNING]
@@ -227,7 +227,7 @@ provisioning.quartz.sql=tables_mariadb.sql
 as `core/src/main/resources/core-mariadb.properties`.
 
 Do not forget to include `mariadb` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [CAUTION]
@@ -267,7 +267,7 @@ provisioning.quartz.sql=tables_oracle.sql
 as `core/src/main/resources/core-oracle.properties`.
 
 Do not forget to include `oracle` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [WARNING]
@@ -320,7 +320,7 @@ provisioning.quartz.sql=tables_oracle.sql
 as `core/src/main/resources/core-ojson.properties`.
 
 Do not forget to include `ojson` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [WARNING]
@@ -357,7 +357,7 @@ provisioning.quartz.sql=tables_sqlServer.sql
 as `core/src/main/resources/core-sqlserver.properties`.
 
 Do not forget to include `sqlserver` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [WARNING]
diff --git a/src/main/asciidoc/reference-guide/configuration/deployment.adoc b/src/main/asciidoc/reference-guide/configuration/deployment.adoc
index 7b52ced2c2..fdd11b19e4 100644
--- a/src/main/asciidoc/reference-guide/configuration/deployment.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/deployment.adoc
@@ -24,7 +24,7 @@ Java EE containers.
 
 [WARNING]
 The only exception is <<secure-remote-access>> that, being based on Spring Cloud Gateway - which in turn is built on 
-https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html[Spring WebFlux^] and
+https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/web-reactive.html[Spring WebFlux^] and
 https://projectreactor.io/docs[Project Reactor^], is only available as standalone application.
 
 [CAUTION]
@@ -48,11 +48,11 @@ where `<KEYMASTER_ADDRESS>` can be either:
 
 Projects generated from Maven archetype feature a dedicated `executable` profile, which will re-package all
 applications according to Spring Boot's
-https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html[executable format^].
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/executable-jar.html[executable format^].
 
 [TIP]
 Spring Boot applications can also be
-https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html[installed as system services^].
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/deployment.html#deployment.installing[installed as system services^].
 
 .Run Core application as executable under GNU / Linux
 ====
@@ -72,7 +72,7 @@ $ export LOADER_PATH=/opt/syncope/conf,/opt/syncope/lib
 $ java -jar /opt/syncope/lib/syncope.war
 ----
 Further options can be passed to last command, according to Spring Boot
-https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html[documentation^];
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/application-properties.html#appendix.application-properties[documentation^];
 for example:
 
 * `--spring.config.location=/path` +
@@ -269,7 +269,7 @@ javadocPaths=/WEB-INF/lib/syncope-common-idrepo-rest-api-${syncope.version}-java
 as `core/src/main/resources/core-wildfy.properties`.
 
 Do not forget to include `widlfly` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 [TIP]
diff --git a/src/main/asciidoc/reference-guide/usage/customization.adoc b/src/main/asciidoc/reference-guide/usage/customization.adoc
index fc7b0f2713..3cc9aae5d8 100644
--- a/src/main/asciidoc/reference-guide/usage/customization.adoc
+++ b/src/main/asciidoc/reference-guide/usage/customization.adoc
@@ -150,7 +150,7 @@ endif::[]
 ===== Extending configuration
 Apache Syncope <<architecture,components>> are built on https://spring.io/projects/spring-boot[Spring Boot^],
 hence designing and extending Syncope configuration very much comes down to
-https://docs.spring.io/spring-boot/docs/current/reference/html/[their guide^], some aspects of which are briefly
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/[their guide^], some aspects of which are briefly
 highlighted here.
 
 To design your own configuration class, take inspiration from the following sample:
@@ -231,7 +231,7 @@ $ mkdir /opt/syncope/conf
 [TIP]
 ====
 The `conf` directory must be configured for deployment, following Spring Boot's
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config[Externalized Configuration^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.external-config[Externalized Configuration^]
 settings; with above reference:
 
 * <<standalone>>: `--spring.config.location=/opt/syncope/conf/`
@@ -391,7 +391,7 @@ elasticsearch.numberOfReplicas=1
 as `core/src/main/resources/core-elasticsearch.properties`.
 
 Do not forget to include `elasticsearch` as 
-https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
+https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.profiles.adding-active-profiles[Spring Boot profile^]
 for the Core application.
 
 If needed, customize the `@Bean` declarations from


[syncope] 03/03: Prefer spring-boot-starter-mail over custom conf

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 9e817338a875a56633650f641ef9014d2f3a5bc6
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Dec 9 14:22:52 2022 +0100

    Prefer spring-boot-starter-mail over custom conf
---
 .../syncope/core/logic/IdMLogicTestContext.java    |  8 ++
 core/idrepo/logic/pom.xml                          |  5 ++
 .../syncope/core/logic/IdRepoLogicTestContext.java |  8 ++
 core/provisioning-java/pom.xml                     | 13 ++--
 .../provisioning/java/ProvisioningContext.java     | 85 ---------------------
 .../provisioning/java/ProvisioningProperties.java  | 87 ----------------------
 .../provisioning/java/ProvisioningTestContext.java |  8 ++
 core/starter/src/main/resources/core.properties    | 20 +++--
 .../src/main/resources/core-embedded.properties    |  4 +-
 .../syncope/fit/core/NotificationITCase.java       |  3 +-
 .../reference-guide/configuration/email.adoc       | 59 +++++----------
 11 files changed, 67 insertions(+), 233 deletions(-)

diff --git a/core/idm/logic/src/test/java/org/apache/syncope/core/logic/IdMLogicTestContext.java b/core/idm/logic/src/test/java/org/apache/syncope/core/logic/IdMLogicTestContext.java
index f29b633844..9102a808b5 100644
--- a/core/idm/logic/src/test/java/org/apache/syncope/core/logic/IdMLogicTestContext.java
+++ b/core/idm/logic/src/test/java/org/apache/syncope/core/logic/IdMLogicTestContext.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.core.logic;
 
+import static org.mockito.Mockito.mock;
+
 import org.apache.syncope.common.keymaster.client.api.ConfParamOps;
 import org.apache.syncope.common.keymaster.client.api.DomainOps;
 import org.apache.syncope.common.keymaster.client.api.ServiceOps;
@@ -36,6 +38,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
+import org.springframework.mail.javamail.JavaMailSender;
 
 @PropertySource("classpath:core-test.properties")
 @Import({ IdRepoLogicContext.class, IdMLogicContext.class, SecurityContext.class,
@@ -53,6 +56,11 @@ public class IdMLogicTestContext {
         return new TestInitializer(domainLoader, domainHolder, contentLoader, ctx);
     }
 
+    @Bean
+    public JavaMailSender javaMailSender() {
+        return mock(JavaMailSender.class);
+    }
+
     @Bean
     public ImplementationLookup implementationLookup() {
         return new DummyImplementationLookup();
diff --git a/core/idrepo/logic/pom.xml b/core/idrepo/logic/pom.xml
index acc2852ac1..ddc1abe2ab 100644
--- a/core/idrepo/logic/pom.xml
+++ b/core/idrepo/logic/pom.xml
@@ -100,6 +100,11 @@ under the License.
       <artifactId>spring-test</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter</artifactId>
diff --git a/core/idrepo/logic/src/test/java/org/apache/syncope/core/logic/IdRepoLogicTestContext.java b/core/idrepo/logic/src/test/java/org/apache/syncope/core/logic/IdRepoLogicTestContext.java
index d647b7ca82..ed654e422e 100644
--- a/core/idrepo/logic/src/test/java/org/apache/syncope/core/logic/IdRepoLogicTestContext.java
+++ b/core/idrepo/logic/src/test/java/org/apache/syncope/core/logic/IdRepoLogicTestContext.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.core.logic;
 
+import static org.mockito.Mockito.mock;
+
 import org.apache.syncope.common.keymaster.client.api.ConfParamOps;
 import org.apache.syncope.common.keymaster.client.api.DomainOps;
 import org.apache.syncope.common.keymaster.client.api.ServiceOps;
@@ -36,6 +38,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
+import org.springframework.mail.javamail.JavaMailSender;
 
 @PropertySource("classpath:core-test.properties")
 @Import({ IdRepoLogicContext.class, IdRepoLogicContext.class, SecurityContext.class,
@@ -53,6 +56,11 @@ public class IdRepoLogicTestContext {
         return new TestInitializer(domainLoader, domainHolder, contentLoader, ctx);
     }
 
+    @Bean
+    public JavaMailSender javaMailSender() {
+        return mock(JavaMailSender.class);
+    }
+
     @Bean
     public ImplementationLookup implementationLookup() {
         return new DummyImplementationLookup();
diff --git a/core/provisioning-java/pom.xml b/core/provisioning-java/pom.xml
index 96aca892fa..fda5ce3d61 100644
--- a/core/provisioning-java/pom.xml
+++ b/core/provisioning-java/pom.xml
@@ -45,9 +45,10 @@ under the License.
     </dependency>
 
     <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-context-support</artifactId>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-mail</artifactId>
     </dependency>
+
     <dependency>
       <groupId>org.springframework.retry</groupId>
       <artifactId>spring-retry</artifactId>
@@ -146,13 +147,13 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter</artifactId>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-junit-jupiter</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-junit-jupiter</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningContext.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningContext.java
index 88b8a961e4..24d3945af2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningContext.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningContext.java
@@ -18,22 +18,14 @@
  */
 package org.apache.syncope.core.provisioning.java;
 
-import java.io.IOException;
-import java.io.PrintStream;
 import java.nio.charset.StandardCharsets;
 import java.util.Properties;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadPoolExecutor;
 import javax.annotation.Resource;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.naming.NamingException;
 import javax.sql.DataSource;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.keymaster.client.api.ConfParamOps;
-import org.apache.syncope.common.lib.LogOutputStream;
 import org.apache.syncope.core.persistence.api.DomainHolder;
 import org.apache.syncope.core.persistence.api.attrvalue.validation.PlainAttrValidationManager;
 import org.apache.syncope.core.persistence.api.dao.AccessTokenDAO;
@@ -184,8 +176,6 @@ import org.apache.syncope.core.spring.security.jws.AccessTokenJWSSigner;
 import org.apache.syncope.core.workflow.api.AnyObjectWorkflowAdapter;
 import org.apache.syncope.core.workflow.api.GroupWorkflowAdapter;
 import org.apache.syncope.core.workflow.api.UserWorkflowAdapter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -200,9 +190,7 @@ import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.task.AsyncTaskExecutor;
 import org.springframework.core.task.support.TaskExecutorAdapter;
 import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
-import org.springframework.jndi.JndiObjectFactoryBean;
 import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.mail.javamail.JavaMailSenderImpl;
 import org.springframework.scheduling.annotation.AsyncConfigurer;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -214,8 +202,6 @@ import org.springframework.transaction.PlatformTransactionManager;
 @Configuration(proxyBeanMethods = false)
 public class ProvisioningContext {
 
-    private static final Logger LOG = LoggerFactory.getLogger(ProvisioningContext.class);
-
     @Resource(name = "MasterDataSource")
     private DataSource masterDataSource;
 
@@ -381,77 +367,6 @@ public class ProvisioningContext {
         return new JobStatusUpdater(jobStatusDAO, entityFactory);
     }
 
-    @ConditionalOnMissingBean
-    @Bean
-    public JavaMailSender mailSender(final ProvisioningProperties provisioningProperties)
-            throws IllegalArgumentException, IOException {
-
-        JavaMailSenderImpl mailSender = new JavaMailSenderImpl() {
-
-            @Override
-            protected Transport connectTransport() throws MessagingException {
-                // ensure that no auth means no auth
-                if (StringUtils.isBlank(getUsername())) {
-                    Transport transport = getTransport(getSession());
-                    transport.connect(getHost(), getPort(), null, null);
-                    return transport;
-                }
-
-                return super.connectTransport();
-            }
-        };
-        mailSender.setDefaultEncoding(provisioningProperties.getSmtp().getDefaultEncoding());
-        mailSender.setHost(provisioningProperties.getSmtp().getHost());
-        mailSender.setPort(provisioningProperties.getSmtp().getPort());
-        mailSender.setUsername(provisioningProperties.getSmtp().getUsername());
-        mailSender.setPassword(provisioningProperties.getSmtp().getPassword());
-        mailSender.setProtocol(provisioningProperties.getSmtp().getProtocol());
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("[Mail] host:port = {}:{}", mailSender.getHost(), mailSender.getPort());
-            LOG.debug("[Mail] protocol = {}", mailSender.getProtocol());
-            LOG.debug("[Mail] username = {}", mailSender.getUsername());
-            LOG.debug("[Mail] default encoding = {}", mailSender.getDefaultEncoding());
-        }
-
-        JndiObjectFactoryBean mailSession = new JndiObjectFactoryBean();
-        mailSession.setJndiName("mail/syncopeNotification");
-        try {
-            mailSession.afterPropertiesSet();
-        } catch (NamingException e) {
-            LOG.debug("While looking up JNDI for mail session", e);
-        }
-
-        Session session = (Session) mailSession.getObject();
-        if (session == null) {
-            Properties javaMailProperties = mailSender.getJavaMailProperties();
-
-            provisioningProperties.getSmtp().getJavamailProperties().
-                    forEach((key, value) -> javaMailProperties.setProperty(key, value));
-
-            if (StringUtils.isNotBlank(mailSender.getUsername())) {
-                javaMailProperties.setProperty("mail.smtp.auth", "true");
-            }
-
-            if (LOG.isDebugEnabled()) {
-                mailSender.getJavaMailProperties().
-                        forEach((key, value) -> LOG.debug("[Mail] property: {} = {}", key, value));
-            }
-
-            if (provisioningProperties.getSmtp().isDebug()) {
-                session = mailSender.getSession();
-                session.setDebug(true);
-                try (LogOutputStream los = new LogOutputStream(LOG)) {
-                    session.setDebugOut(new PrintStream(los));
-                }
-            }
-        } else {
-            mailSender.setSession(session);
-        }
-
-        return mailSender;
-    }
-
     @ConditionalOnMissingBean
     @Bean
     public ConnectorManager connectorManager(
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningProperties.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningProperties.java
index 7375f3da7e..9eea8ace4c 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningProperties.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ProvisioningProperties.java
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.provisioning.java;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import org.quartz.impl.jdbcjobstore.DriverDelegate;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -91,85 +89,6 @@ public class ProvisioningProperties {
         }
     }
 
-    public static class SMTPProperties {
-
-        private String host;
-
-        private int port = 25;
-
-        private String username;
-
-        private String password;
-
-        private String protocol = "smtp";
-
-        private String defaultEncoding = "UTF-8";
-
-        private boolean debug = false;
-
-        private final Map<String, String> javamailProperties = new HashMap<>();
-
-        public String getHost() {
-            return host;
-        }
-
-        public void setHost(final String host) {
-            this.host = host;
-        }
-
-        public int getPort() {
-            return port;
-        }
-
-        public void setPort(final int port) {
-            this.port = port;
-        }
-
-        public String getUsername() {
-            return username;
-        }
-
-        public void setUsername(final String username) {
-            this.username = username;
-        }
-
-        public String getPassword() {
-            return password;
-        }
-
-        public void setPassword(final String password) {
-            this.password = password;
-        }
-
-        public String getProtocol() {
-            return protocol;
-        }
-
-        public void setProtocol(final String protocol) {
-            this.protocol = protocol;
-        }
-
-        public String getDefaultEncoding() {
-            return defaultEncoding;
-        }
-
-        public void setDefaultEncoding(final String defaultEncoding) {
-            this.defaultEncoding = defaultEncoding;
-        }
-
-        public boolean isDebug() {
-            return debug;
-        }
-
-        public void setDebug(final boolean debug) {
-            this.debug = debug;
-        }
-
-        public Map<String, String> getJavamailProperties() {
-            return javamailProperties;
-        }
-    }
-
     private final ExecutorProperties asyncConnectorFacadeExecutor = new ExecutorProperties();
 
     private final ExecutorProperties propagationTaskExecutorAsyncExecutor = new ExecutorProperties();
@@ -180,8 +99,6 @@ public class ProvisioningProperties {
 
     private final QuartzProperties quartz = new QuartzProperties();
 
-    private final SMTPProperties smtp = new SMTPProperties();
-
     public String getVirAttrCacheSpec() {
         return virAttrCacheSpec;
     }
@@ -205,8 +122,4 @@ public class ProvisioningProperties {
     public QuartzProperties getQuartz() {
         return quartz;
     }
-
-    public SMTPProperties getSmtp() {
-        return smtp;
-    }
 }
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ProvisioningTestContext.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ProvisioningTestContext.java
index 5794382682..ce03a87c27 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ProvisioningTestContext.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ProvisioningTestContext.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.core.provisioning.java;
 
+import static org.mockito.Mockito.mock;
+
 import org.apache.syncope.common.keymaster.client.api.ConfParamOps;
 import org.apache.syncope.common.keymaster.client.api.DomainOps;
 import org.apache.syncope.core.persistence.api.DomainHolder;
@@ -34,6 +36,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
+import org.springframework.mail.javamail.JavaMailSender;
 
 @PropertySource("classpath:core-test.properties")
 @Import({ ProvisioningContext.class, SecurityContext.class,
@@ -51,6 +54,11 @@ public class ProvisioningTestContext {
         return new TestInitializer(domainLoader, domainHolder, contentLoader, ctx);
     }
 
+    @Bean
+    public JavaMailSender javaMailSender() {
+        return mock(JavaMailSender.class);
+    }
+
     @Bean
     public ImplementationLookup implementationLookup() {
         return new DummyImplementationLookup();
diff --git a/core/starter/src/main/resources/core.properties b/core/starter/src/main/resources/core.properties
index 19b4ffaa7c..a24df7d357 100644
--- a/core/starter/src/main/resources/core.properties
+++ b/core/starter/src/main/resources/core.properties
@@ -73,17 +73,15 @@ provisioning.quartz.delegate=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
 provisioning.quartz.sql=tables_postgres.sql
 provisioning.quartz.disableInstance=false
 
-provisioning.smtp.host=none.syncope.apache.org
-provisioning.smtp.port=25
-provisioning.smtp.username=
-provisioning.smtp.password=
-provisioning.smtp.protocol=smtp
-provisioning.smtp.defaultEncoding=UTF-8
-provisioning.smtp.debug=false
-# Add more properties starting with mail.smtp.* from
-# https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html#properties
-provisioning.smtp.javamailProperties[mail.smtp.connectiontimeout]=3000
-provisioning.smtp.javamailProperties[mail.smtp.starttls.enable]=false
+#########
+# Email #
+#########
+spring.mail.host=none.syncope.apache.org
+spring.mail.port=25
+spring.mail.username=
+spring.mail.password=
+spring.mail.properties.mail.smtp.auth=false
+spring.mail.properties.mail.smtp.starttls.enable=false
 
 ############
 # Security #
diff --git a/fit/core-reference/src/main/resources/core-embedded.properties b/fit/core-reference/src/main/resources/core-embedded.properties
index d0d0fc45f2..e090f38c8b 100644
--- a/fit/core-reference/src/main/resources/core-embedded.properties
+++ b/fit/core-reference/src/main/resources/core-embedded.properties
@@ -71,5 +71,5 @@ provisioning.quartz.waitForJobsToCompleteOnShutdown=false
 provisioning.connIdLocation=${connid.location},\
 connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}
 
-provisioning.smtp.host=localhost
-provisioning.smtp.port=${testmail.smtpport}
+spring.mail.host=localhost
+spring.mail.port=${testmail.smtpport}
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
index b713b9dfbc..4cff58885b 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
@@ -58,8 +58,7 @@ public class NotificationITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        NotificationTO notificationTO = NOTIFICATION_SERVICE.read(
-                "9e2b911c-25de-4c77-bcea-b86ed9451050");
+        NotificationTO notificationTO = NOTIFICATION_SERVICE.read("9e2b911c-25de-4c77-bcea-b86ed9451050");
         assertNotNull(notificationTO);
     }
 
diff --git a/src/main/asciidoc/reference-guide/configuration/email.adoc b/src/main/asciidoc/reference-guide/configuration/email.adoc
index 03de6a9b2e..b10cf92dbd 100644
--- a/src/main/asciidoc/reference-guide/configuration/email.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/email.adoc
@@ -21,59 +21,38 @@
 The `core.properties` file holds the configuration options to enable the effective delivery of
 <<notifications,notification>> e-mails:
 
-* `provisioning.smtp.host` - the mail server host, typically an SMTP host;
-* `provisioning.smtp.port` - the mail server port;
-* `provisioning.smtp.username` - (optional) the username for the account at the mail host;
-* `provisioning.smtp.password` - (optional) the password for the account at the mail host;
-* `provisioning.smtp.protocol` - the message transport protocol: `smtp` (default) and `smtps` are supported;
-* `provisioning.smtp.defaultEncoding` - the default encoding to use for MIME messages;
-* `provisioning.smtp.debug` - when `true`, enable the debugging of email processing including the handshake, authentication, delivery
- and disconnection; in order for this setting to be effective, it is also required to add the following elements to the
-`log4j2.xml` configuration file:
-[source,xml]
-<asyncLogger name="org.apache.syncope.core.provisioning.java.job.notification"
-             additivity="false" level="DEBUG">
-  <appender-ref ref="mainFile"/>
-  <appender-ref ref="main"/>
-</asyncLogger>
-<asyncLogger name="javax.mail" additivity="false" level="DEBUG">
-  <appender-ref ref="mainFile"/>
-  <appender-ref ref="main"/>
-</asyncLogger>
-* `provisioning.smtp.javamailProperties[provisioning.smtp.javamailProperties[mail.smtp.starttls.enable]]` - when `true`, enable the use of the `STARTTLS` command to switch the connection to a
+* `spring.mail.host` - the mail server host, typically an SMTP host;
+* `spring.mail.port` - the mail server port;
+* `spring.mail.username` - (optional) the username for the account at the mail host;
+* `spring.mail.password` - (optional) the password for the account at the mail host;
+* `spring.mail.properties.mail.smtp.auth` - when `true`, the configured `username` and `password` are sent to SMTP server;
+* `spring.mail.properties.mail.smtp.starttls.enable` - when `true`, enable the use of the `STARTTLS` command to switch the connection to a
 TLS-protected connection before issuing any login commands;
-* `provisioning.smtp.javamailProperties[provisioning.smtp.javamailProperties[mail.smtp.connectiontimeout]]` - the connection timeout value in milliseconds, to the mail host;
 
 All the https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html#properties[JavaMail(TM) properties^]
-are available for usage.
+are available for usage with prefix `spring.mail.properties.`.
 
 .Basic configuration, no authentication
 ====
 ....
-provisioning.smtp.host=your.local.smtp.server
-provisioning.smtp.port=25
-provisioning.smtp.username=
-provisioning.smtp.password=
-provisioning.smtp.protocol=smtp
-provisioning.smtp.defaultEncoding=UTF-8
-provisioning.smtp.debug=false
-provisioning.smtp.javamailProperties[mail.smtp.connectiontimeout]=3000
-provisioning.smtp.javamailProperties[mail.smtp.starttls.enable]=false
+spring.mail.host=your.local.smtp.server
+spring.mail.port=25
+spring.mail.username=
+spring.mail.password=
+spring.mail.properties.mail.smtp.auth=false
+spring.mail.properties.mail.smtp.starttls.enable=false
 ....
 ====
 
 .STARTTLS configuration, with authentication
 ====
 ....
-provisioning.smtp.host=smtp.gmail.com
-provisioning.smtp.port=587
-provisioning.smtp.username=your_username@gmail.com
-provisioning.smtp.password=your_password
-provisioning.smtp.protocol=smtp
-provisioning.smtp.defaultEncoding=UTF-8
-provisioning.smtp.debug=false
-provisioning.smtp.javamailProperties[mail.smtp.connectiontimeout]=3000
-provisioning.smtp.javamailProperties[mail.smtp.starttls.enable]=true
+spring.mail.host=smtp.gmail.com
+spring.mail.port=587
+spring.mail.username=your_username@gmail.com
+spring.mail.password=your_password
+spring.mail.properties.mail.smtp.auth=true
+spring.mail.properties.mail.smtp.starttls.enable=true
 ....
 ====