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


The following commit(s) were added to refs/heads/master by this push:
     new 7388f21987 [SYNCOPE-1723] Removing static paths from generated 
artifacts (#405) (#406)
7388f21987 is described below

commit 7388f21987e3cc6ade291691a2ced6e6fa292cd4
Author: Francesco Chicchiriccò <ilgro...@users.noreply.github.com>
AuthorDate: Tue Jan 24 11:32:43 2023 +0100

    [SYNCOPE-1723] Removing static paths from generated artifacts (#405) (#406)
---
 archetype/pom.xml                                  | 26 +++++++-
 .../resources/archetype-resources/core/pom.xml     |  4 --
 .../main/resources/archetype-resources/fit/pom.xml |  8 ++-
 archetype/src/main/resources/meta-pom.xml          |  2 +
 core/idm/logic/pom.xml                             | 10 +++
 core/persistence-jpa-json/pom.xml                  |  3 +
 .../resources/domains/jpa-json/MasterContent.xml   |  4 +-
 .../src/test/resources/core-myjson-test.properties |  2 +-
 .../src/test/resources/core-ojson-test.properties  |  2 +-
 .../test/resources/core-pgjsonb-test.properties    |  2 +-
 .../src/test/resources/domains/MasterContent.xml   | 20 +++---
 core/persistence-jpa/pom.xml                       |  1 +
 .../src/main/resources/domains/MasterContent.xml   |  4 +-
 .../src/test/resources/core-test.properties        |  2 +-
 .../src/test/resources/domains/MasterContent.xml   | 20 +++---
 .../src/test/resources/domains/TwoContent.xml      |  2 +-
 core/provisioning-java/pom.xml                     | 11 ++++
 .../java/data/ConnInstanceDataBinderImpl.java      | 14 ++---
 core/starter/src/main/resources/core.properties    |  4 +-
 docker/core/src/main/resources/Dockerfile          |  2 +-
 .../core/src/main/resources/core-docker.properties |  2 -
 docker/pom.xml                                     |  3 -
 docker/wa/src/main/resources/Dockerfile            |  2 +-
 docker/wa/src/main/resources/wa-docker.properties  |  4 --
 ...tHandler.java => NoOpSessionLogoutHandler.java} |  4 +-
 .../syncope/core/logic/oidc/OIDCClientCache.java   |  2 +-
 .../syncope/core/logic/init/SAML2SP4UILoader.java  |  4 +-
 ...tHandler.java => NoOpSessionLogoutHandler.java} |  4 +-
 .../src/main/resources/core-saml2sp4ui.properties  |  2 +-
 fit/build-tools/pom.xml                            |  6 --
 fit/console-reference/pom.xml                      | 21 -------
 .../src/main/resources/log4j2.xml                  |  4 +-
 fit/core-reference/pom.xml                         |  6 --
 .../src/main/resources/core-all.properties         |  2 +-
 .../src/main/resources/core-embedded.properties    |  2 +-
 fit/core-reference/src/main/resources/log4j2.xml   | 16 ++---
 fit/core-reference/src/test/resources/log4j2.xml   |  4 +-
 .../src/test/resources/test.properties             |  2 +-
 fit/enduser-reference/pom.xml                      | 21 -------
 .../src/main/resources/log4j2.xml                  |  4 +-
 fit/wa-reference/pom.xml                           |  6 +-
 fit/wa-reference/src/main/resources/log4j2.xml     |  4 +-
 .../src/main/resources/wa-embedded.properties      |  8 ---
 fit/wa-reference/src/test/resources/log4j2.xml     |  4 +-
 pom.xml                                            | 71 +++++++++++++++++++---
 sra/pom.xml                                        |  1 +
 .../org/apache/syncope/sra/SecurityConfig.java     |  4 +-
 ...tHandler.java => NoOpSessionLogoutHandler.java} |  4 +-
 sra/src/main/resources/log4j2.xml                  |  8 +--
 .../reference-guide/configuration/deployment.adoc  | 50 +++++++++++----
 .../asciidoc/reference-guide/howto/keystore.adoc   |  2 +-
 .../asciidoc/reference-guide/usage/actuator.adoc   |  2 +-
 .../reference-guide/usage/customization.adoc       | 20 +++---
 standalone/pom.xml                                 | 27 ++++++--
 standalone/src/main/resources/setenv.bat           |  2 +-
 standalone/src/main/resources/setenv.sh            |  2 +-
 .../wa/bootstrap/WABootstrapConfiguration.java     |  2 +-
 wa/starter/pom.xml                                 | 11 ++++
 wa/starter/src/main/resources/wa.properties        |  6 +-
 59 files changed, 293 insertions(+), 199 deletions(-)

diff --git a/archetype/pom.xml b/archetype/pom.xml
index 12ffaf2882..97f939037c 100644
--- a/archetype/pom.xml
+++ b/archetype/pom.xml
@@ -42,7 +42,7 @@ under the License.
       <extension>
         <groupId>org.apache.maven.archetype</groupId>
         <artifactId>archetype-packaging</artifactId>
-        <version>3.2.0</version>
+        <version>3.2.1</version>
       </extension>
     </extensions>
 
@@ -103,6 +103,30 @@ under the License.
         </configuration>
       </plugin>
 
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>adjust-MasterContent</id>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <phase>prepare-package</phase>
+            <configuration>
+              <target>
+                <replace 
file="${project.build.outputDirectory}/archetype-resources/core/src/main/resources/domains/MasterContent.xml"
+                         token="http://localhost:";
+                         value="https://localhost:"/>
+                <replace 
file="${project.build.outputDirectory}/archetype-resources/core/src/test/resources/domains/MasterContent.xml"
+                         token="http://localhost:";
+                         value="https://localhost:"/>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
diff --git a/archetype/src/main/resources/archetype-resources/core/pom.xml 
b/archetype/src/main/resources/archetype-resources/core/pom.xml
index 602e5280b2..9b380d03a4 100644
--- a/archetype/src/main/resources/archetype-resources/core/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/core/pom.xml
@@ -158,10 +158,6 @@ under the License.
           <resource>
             <directory>src/main/resources</directory>
             <filtering>true</filtering>
-            <excludes>
-              <exclude>workflow.properties</exclude>
-              <exclude>provisioning.properties</exclude>
-            </excludes>
           </resource>
           <resource>
             <directory>src/main/resources/all</directory>
diff --git a/archetype/src/main/resources/archetype-resources/fit/pom.xml 
b/archetype/src/main/resources/archetype-resources/fit/pom.xml
index 5cc19bf4d4..b1538195ff 100644
--- a/archetype/src/main/resources/archetype-resources/fit/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/fit/pom.xml
@@ -194,9 +194,10 @@ under the License.
               <arguments>
                 
<argument>-Djavax.net.ssl.trustStore=${basedir}/src/test/resources/keystore.jks</argument>
                 
<argument>-Djavax.net.ssl.trustStorePassword=password</argument>
+                
<argument>-Dreactor.netty.http.server.accessLogEnabled=true</argument>
+                
<argument>-Dsyncope.log.dir=${project.build.directory}/log</argument>
                 <argument>-jar</argument>
                 
<argument>${basedir}/../sra/target/syncope-sra-exec.jar</argument>
-                
<argument>-Dreactor.netty.http.server.accessLogEnabled=true</argument>
               </arguments>
               <environmentVariables>
                 
<LOADER_PATH>${basedir}/../sra/target/test-classes</LOADER_PATH>
@@ -222,8 +223,6 @@ under the License.
               <extractDir>${project.build.directory}/cargo/extract</extractDir>
             </zipUrlInstaller>
             <timeout>600000</timeout>
-            <log>${cargo.log}</log>
-            <output>${cargo.output}</output> 
 
             <dependencies>
               <dependency>
@@ -240,6 +239,9 @@ under the License.
 
               
<javax.net.ssl.trustStore>${basedir}/src/test/resources/keystore.jks</javax.net.ssl.trustStore>
               
<javax.net.ssl.trustStorePassword>password</javax.net.ssl.trustStorePassword>
+
+              
<syncope.conf.dir>${basedir}/../core/target/test-classes</syncope.conf.dir>
+              
<syncope.connid.location>file:${basedir}/../core/target/bundles/</syncope.connid.location>
             </systemProperties>
           </container>
           <configuration>
diff --git a/archetype/src/main/resources/meta-pom.xml 
b/archetype/src/main/resources/meta-pom.xml
index 0a453ee810..62a7b44c00 100644
--- a/archetype/src/main/resources/meta-pom.xml
+++ b/archetype/src/main/resources/meta-pom.xml
@@ -39,6 +39,8 @@ under the License.
     <ianal.phase>none</ianal.phase>
     <rat.skip>true</rat.skip>
     <checkstyle.skip>true</checkstyle.skip>
+
+    <cargo.servlet.port>9443</cargo.servlet.port>
   </properties>
 
   <name>Apache Syncope sample project</name>
diff --git a/core/idm/logic/pom.xml b/core/idm/logic/pom.xml
index b1d154d902..9ec7bde15d 100644
--- a/core/idm/logic/pom.xml
+++ b/core/idm/logic/pom.xml
@@ -128,6 +128,16 @@ under the License.
     </testResources>
         
     <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <systemProperties>
+            
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
+          </systemProperties>
+        </configuration>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
diff --git a/core/persistence-jpa-json/pom.xml 
b/core/persistence-jpa-json/pom.xml
index bce5a57487..0b32de86df 100644
--- a/core/persistence-jpa-json/pom.xml
+++ b/core/persistence-jpa-json/pom.xml
@@ -252,6 +252,7 @@ under the License.
                 <profileId>${project.activeProfiles[0].id}</profileId>
                 
<CORE_PROPERTIES>classpath:core-pgjsonb.properties,classpath:core-pgjsonb-test.properties</CORE_PROPERTIES>
                 
<DB_CONTAINER_IP>${docker.container.postgres.ip}</DB_CONTAINER_IP>
+                
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
               </systemProperties>
             </configuration>
           </plugin>
@@ -365,6 +366,7 @@ under the License.
                 <profileId>${project.activeProfiles[0].id}</profileId>
                 
<CORE_PROPERTIES>classpath:core-myjson.properties,classpath:core-myjson-test.properties</CORE_PROPERTIES>
                 <DB_CONTAINER_IP>${docker.container.mysql.ip}</DB_CONTAINER_IP>
+                
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
               </systemProperties>
             </configuration>
           </plugin>
@@ -479,6 +481,7 @@ under the License.
                 <profileId>${project.activeProfiles[0].id}</profileId>
                 
<CORE_PROPERTIES>classpath:core-ojson.properties,classpath:core-ojson-test.properties</CORE_PROPERTIES>
                 
<DB_CONTAINER_IP>${docker.container.oracle.ip}</DB_CONTAINER_IP>
+                
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
               </systemProperties>
             </configuration>
           </plugin>
diff --git 
a/core/persistence-jpa-json/src/main/resources/domains/jpa-json/MasterContent.xml
 
b/core/persistence-jpa-json/src/main/resources/domains/jpa-json/MasterContent.xml
index d11e887c2a..6c786da789 100644
--- 
a/core/persistence-jpa-json/src/main/resources/domains/jpa-json/MasterContent.xml
+++ 
b/core/persistence-jpa-json/src/main/resources/domains/jpa-json/MasterContent.xml
@@ -63,7 +63,7 @@ a password reset was requested for ${user.getUsername()}.
 
 In order to complete this request, you need to visit this link:
 
-http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
+http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
 
 If you did not request this reset, just ignore the present e-mail.
 
@@ -74,7 +74,7 @@ Best regards."
 a password reset was requested for ${user.getUsername()}.&lt;/p&gt;
 
 &lt;p&gt;In order to complete this request, you need to visit this 
-&lt;a 
href=&quot;http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
+&lt;a 
href=&quot;http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
 
 &lt;p&gt;If you did not request this reset, just ignore the present 
e-mail.&lt;/p&gt;
 
diff --git 
a/core/persistence-jpa-json/src/test/resources/core-myjson-test.properties 
b/core/persistence-jpa-json/src/test/resources/core-myjson-test.properties
index 759c819729..4bd6124228 100644
--- a/core/persistence-jpa-json/src/test/resources/core-myjson-test.properties
+++ b/core/persistence-jpa-json/src/test/resources/core-myjson-test.properties
@@ -24,4 +24,4 @@ 
persistence.domain[0].jdbcURL=jdbc:mysql://${DB_CONTAINER_IP}:3306/syncope?useSS
 persistence.domain[0].poolMaxActive=10
 persistence.domain[0].poolMinIdle=2
 
-provisioning.connIdLocation=${connid.location}
+provisioning.connIdLocation=${syncope.connid.location}
diff --git 
a/core/persistence-jpa-json/src/test/resources/core-ojson-test.properties 
b/core/persistence-jpa-json/src/test/resources/core-ojson-test.properties
index 70b684cc23..96ce2aa12d 100644
--- a/core/persistence-jpa-json/src/test/resources/core-ojson-test.properties
+++ b/core/persistence-jpa-json/src/test/resources/core-ojson-test.properties
@@ -25,4 +25,4 @@ 
persistence.domain[0].jdbcURL=jdbc:oracle:thin:@${DB_CONTAINER_IP}:1521/XEPDB1
 persistence.domain[0].poolMaxActive=10
 persistence.domain[0].poolMinIdle=2
 
-provisioning.connIdLocation=${connid.location}
+provisioning.connIdLocation=${syncope.connid.location}
diff --git 
a/core/persistence-jpa-json/src/test/resources/core-pgjsonb-test.properties 
b/core/persistence-jpa-json/src/test/resources/core-pgjsonb-test.properties
index fb3c8c2667..a7a7b9594a 100644
--- a/core/persistence-jpa-json/src/test/resources/core-pgjsonb-test.properties
+++ b/core/persistence-jpa-json/src/test/resources/core-pgjsonb-test.properties
@@ -24,4 +24,4 @@ 
persistence.domain[0].jdbcURL=jdbc:postgresql://${DB_CONTAINER_IP}:5432/syncope?
 persistence.domain[0].poolMaxActive=10
 persistence.domain[0].poolMinIdle=2
 
-provisioning.connIdLocation=${connid.location}
+provisioning.connIdLocation=${syncope.connid.location}
diff --git 
a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml 
b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
index d752c340cb..e2fba179a1 100644
--- a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
@@ -454,7 +454,7 @@ under the License.
 
   <ConnInstance id="413bf072-678a-41d3-9d20-8c453b3a39d1" displayName="Errored"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.missing"
                 
connectorName="net.tirasa.connid.bundles.missing.MissingConnector"
                 version="none"
@@ -462,7 +462,7 @@ under the License.
 
   <ConnInstance id="88a7a819-dab5-46b4-9b90-0b9769eabdb8" 
displayName="ConnInstance100"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.soap"
                 
connectorName="net.tirasa.connid.bundles.soap.WebServiceConnector"
                 version="${connid.soap.version}"
@@ -480,7 +480,7 @@ under the License.
 
   <ConnInstance id="5ffbb4ac-a8c3-4b44-b699-11b398a1ba08" 
displayName="ConnInstance102"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.soap"
                 
connectorName="net.tirasa.connid.bundles.soap.WebServiceConnector"
                 version="${connid.soap.version}"
@@ -490,7 +490,7 @@ under the License.
 
   <ConnInstance id="fcf9f2b0-f7d6-42c9-84a6-61b28255a42b" 
displayName="ConnInstance103"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.soap"
                 
connectorName="net.tirasa.connid.bundles.soap.WebServiceConnector"
                 version="${connid.soap.version}"
@@ -498,7 +498,7 @@ under the License.
 
   <ConnInstance id="6c2acf1b-b052-46f0-8c56-7a8ad6905edf" displayName="CSVDir"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.csvdir"
                 
connectorName="net.tirasa.connid.bundles.csvdir.CSVDirConnector"
                 version="${connid.csvdir.version}"
@@ -508,7 +508,7 @@ under the License.
   <ConnInstance id="74141a3b-0762-4720-a4aa-fc3e374ef3ef"
                 bundleName="net.tirasa.connid.bundles.ldap" 
displayName="TestLDAP"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 connectorName="net.tirasa.connid.bundles.ldap.LdapConnector"
                 version="${connid.ldap.version}" 
                 
jsonConf='[{"schema":{"name":"host","type":"java.lang.String","required":true,"order":1,"confidential":false,"defaultValues":[]},"values":["localhost"],"overridable":false},{"schema":{"name":"port","type":"int","required":false,"order":2,"confidential":false,"defaultValues":[389]},"values":[${testds.port}],"overridable":false},{"schema":{"name":"ssl","type":"boolean","required":false,"order":3,"confidential":false,"defaultValues":[false]},"values":["false"],"overridable":
 [...]
@@ -536,7 +536,7 @@ under the License.
                 
location="connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}"
                 
connectorName="net.tirasa.connid.bundles.db.scriptedsql.ScriptedSQLConnector"
                 displayName="Scripted SQL" version="${connid.database.version}"
-                
jsonConf='[{&quot;schema&quot;:{&quot;name&quot;:&quot;updateScriptFileName&quot;,&quot;displayName&quot;:&quot;updateScriptFileName&quot;,&quot;helpMessage&quot;:&quot;updateScriptFileName&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:0,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[]},&quot;overridable&quot;:false,&quot;values&quot;:[&quot;${conf.directory}/scriptedsql/UpdateScript.groovy&quot;]},{&quot;schem
 [...]
+                
jsonConf='[{&quot;schema&quot;:{&quot;name&quot;:&quot;updateScriptFileName&quot;,&quot;displayName&quot;:&quot;updateScriptFileName&quot;,&quot;helpMessage&quot;:&quot;updateScriptFileName&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:0,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[]},&quot;overridable&quot;:false,&quot;values&quot;:[&quot;${syncope.conf.dir}/scriptedsql/UpdateScript.groovy&quot;]},{&quot;sch
 [...]
                 
capabilities='["CREATE","UPDATE","UPDATE_DELTA","DELETE","SEARCH","SYNC"]'/>
   
   <ConnInstance id="44c02549-19c3-483c-8025-4919c3283c37" 
bundlename="net.tirasa.connid.bundles.rest"
@@ -544,7 +544,7 @@ under the License.
                 
location="connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}"
                 connectorname="net.tirasa.connid.bundles.rest.RESTConnector"
                 displayname="REST" version="${connid.rest.version}"
-                
jsonconf="[{&quot;schema&quot;:{&quot;name&quot;:&quot;authenticateScript&quot;,&quot;displayName&quot;:&quot;authenticateScript&quot;,&quot;helpMessage&quot;:&quot;authenticateScript&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:6,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[&quot;&quot;]},&quot;overridable&quot;:false,&quot;values&quot;:[]},{&quot;schema&quot;:{&quot;name&quot;:&quot;contentType&quot;,&quot
 [...]
+                
jsonconf="[{&quot;schema&quot;:{&quot;name&quot;:&quot;authenticateScript&quot;,&quot;displayName&quot;:&quot;authenticateScript&quot;,&quot;helpMessage&quot;:&quot;authenticateScript&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:6,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[&quot;&quot;]},&quot;overridable&quot;:false,&quot;values&quot;:[]},{&quot;schema&quot;:{&quot;name&quot;:&quot;contentType&quot;,&quot
 [...]
                 
capabilities='["AUTHENTICATE","CREATE","UPDATE","DELETE","SEARCH","SYNC"]'/>
 
   <ExternalResource id="ws-target-resource-1" 
connector_id="88a7a819-dab5-46b4-9b90-0b9769eabdb8"
@@ -833,7 +833,7 @@ a password reset was requested for ${user.getUsername()}.
 
 In order to complete this request, you need to visit this link:
 
-http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
+http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
 
 If you did not request this reset, just ignore the present e-mail.
 
@@ -844,7 +844,7 @@ Best regards."
 a password reset was requested for ${user.getUsername()}.&lt;/p&gt;
 
 &lt;p&gt;In order to complete this request, you need to visit this 
-&lt;a 
href=&quot;http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
+&lt;a 
href=&quot;http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
 
 &lt;p&gt;If you did not request this reset, just ignore the present 
e-mail.&lt;/p&gt;
 
diff --git a/core/persistence-jpa/pom.xml b/core/persistence-jpa/pom.xml
index 7a5fe1b162..a33beac8cc 100644
--- a/core/persistence-jpa/pom.xml
+++ b/core/persistence-jpa/pom.xml
@@ -179,6 +179,7 @@ under the License.
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
           <systemProperties>
+            
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
             <h2.returnOffsetDateTime>true</h2.returnOffsetDateTime>
             <CORE_PROPERTIES>classpath:core-test.properties</CORE_PROPERTIES>
           </systemProperties>
diff --git a/core/persistence-jpa/src/main/resources/domains/MasterContent.xml 
b/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
index 3e32eeffd9..9a7c89fa1f 100644
--- a/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
@@ -63,7 +63,7 @@ a password reset was requested for ${user.getUsername()}.
 
 In order to complete this request, you need to visit this link:
 
-http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
+http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
 
 If you did not request this reset, just ignore the present e-mail.
 
@@ -74,7 +74,7 @@ Best regards."
 a password reset was requested for ${user.getUsername()}.&lt;/p&gt;
 
 &lt;p&gt;In order to complete this request, you need to visit this 
-&lt;a 
href=&quot;http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
+&lt;a 
href=&quot;http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
 
 &lt;p&gt;If you did not request this reset, just ignore the present 
e-mail.&lt;/p&gt;
 
diff --git a/core/persistence-jpa/src/test/resources/core-test.properties 
b/core/persistence-jpa/src/test/resources/core-test.properties
index d71e3c676a..bcd721e584 100644
--- a/core/persistence-jpa/src/test/resources/core-test.properties
+++ b/core/persistence-jpa/src/test/resources/core-test.properties
@@ -45,4 +45,4 @@ persistence.domain[1].adminCipherAlgorithm=SHA
 provisioning.quartz.delegate=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
 provisioning.quartz.sql=tables_h2.sql
 
-provisioning.connIdLocation=${connid.location}
+provisioning.connIdLocation=${syncope.connid.location}
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml 
b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 21ff82ca72..abfbc39271 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -540,7 +540,7 @@ under the License.
   
   <ConnInstance id="413bf072-678a-41d3-9d20-8c453b3a39d1" displayName="Errored"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.missing"
                 
connectorName="net.tirasa.connid.bundles.missing.MissingConnector"
                 version="none"
@@ -548,7 +548,7 @@ under the License.
 
   <ConnInstance id="88a7a819-dab5-46b4-9b90-0b9769eabdb8" 
displayName="ConnInstance100"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.soap"
                 
connectorName="net.tirasa.connid.bundles.soap.WebServiceConnector"
                 version="${connid.soap.version}"
@@ -566,7 +566,7 @@ under the License.
 
   <ConnInstance id="5ffbb4ac-a8c3-4b44-b699-11b398a1ba08" 
displayName="ConnInstance102"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.soap"
                 
connectorName="net.tirasa.connid.bundles.soap.WebServiceConnector"
                 version="${connid.soap.version}"
@@ -576,7 +576,7 @@ under the License.
 
   <ConnInstance id="fcf9f2b0-f7d6-42c9-84a6-61b28255a42b" 
displayName="ConnInstance103"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.soap"
                 
connectorName="net.tirasa.connid.bundles.soap.WebServiceConnector"
                 version="${connid.soap.version}"
@@ -584,7 +584,7 @@ under the License.
 
   <ConnInstance id="6c2acf1b-b052-46f0-8c56-7a8ad6905edf" displayName="CSVDir"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 bundleName="net.tirasa.connid.bundles.csvdir"
                 
connectorName="net.tirasa.connid.bundles.csvdir.CSVDirConnector"
                 version="${connid.csvdir.version}"
@@ -594,7 +594,7 @@ under the License.
   <ConnInstance id="74141a3b-0762-4720-a4aa-fc3e374ef3ef"
                 bundleName="net.tirasa.connid.bundles.ldap" 
displayName="TestLDAP"
                 adminRealm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 connectorName="net.tirasa.connid.bundles.ldap.LdapConnector"
                 version="${connid.ldap.version}" 
                 
jsonConf='[{"schema":{"name":"host","type":"java.lang.String","required":true,"order":1,"confidential":false,"defaultValues":[]},"values":["localhost"],"overridable":false},{"schema":{"name":"port","type":"int","required":false,"order":2,"confidential":false,"defaultValues":[389]},"values":[${testds.port}],"overridable":false},{"schema":{"name":"ssl","type":"boolean","required":false,"order":3,"confidential":false,"defaultValues":[false]},"values":["false"],"overridable":
 [...]
@@ -622,7 +622,7 @@ under the License.
                 
location="connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}"
                 
connectorName="net.tirasa.connid.bundles.db.scriptedsql.ScriptedSQLConnector"
                 displayName="Scripted SQL" version="${connid.database.version}"
-                
jsonConf='[{&quot;schema&quot;:{&quot;name&quot;:&quot;updateScriptFileName&quot;,&quot;displayName&quot;:&quot;updateScriptFileName&quot;,&quot;helpMessage&quot;:&quot;updateScriptFileName&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:0,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[]},&quot;overridable&quot;:false,&quot;values&quot;:[&quot;${conf.directory}/scriptedsql/UpdateScript.groovy&quot;]},{&quot;schem
 [...]
+                
jsonConf='[{&quot;schema&quot;:{&quot;name&quot;:&quot;updateScriptFileName&quot;,&quot;displayName&quot;:&quot;updateScriptFileName&quot;,&quot;helpMessage&quot;:&quot;updateScriptFileName&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:0,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[]},&quot;overridable&quot;:false,&quot;values&quot;:[&quot;${syncope.conf.dir}/scriptedsql/UpdateScript.groovy&quot;]},{&quot;sch
 [...]
                 
capabilities='["CREATE","UPDATE","UPDATE_DELTA","DELETE","SEARCH","SYNC"]'/>
   
   <ConnInstance id="44c02549-19c3-483c-8025-4919c3283c37" 
bundlename="net.tirasa.connid.bundles.rest"
@@ -630,7 +630,7 @@ under the License.
                 
location="connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}"
                 connectorname="net.tirasa.connid.bundles.rest.RESTConnector"
                 displayname="REST" version="${connid.rest.version}"
-                
jsonconf="[{&quot;schema&quot;:{&quot;name&quot;:&quot;authenticateScript&quot;,&quot;displayName&quot;:&quot;authenticateScript&quot;,&quot;helpMessage&quot;:&quot;authenticateScript&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:6,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[&quot;&quot;]},&quot;overridable&quot;:false,&quot;values&quot;:[]},{&quot;schema&quot;:{&quot;name&quot;:&quot;contentType&quot;,&quot
 [...]
+                
jsonconf="[{&quot;schema&quot;:{&quot;name&quot;:&quot;authenticateScript&quot;,&quot;displayName&quot;:&quot;authenticateScript&quot;,&quot;helpMessage&quot;:&quot;authenticateScript&quot;,&quot;type&quot;:&quot;java.lang.String&quot;,&quot;required&quot;:false,&quot;order&quot;:6,&quot;confidential&quot;:false,&quot;defaultValues&quot;:[&quot;&quot;]},&quot;overridable&quot;:false,&quot;values&quot;:[]},{&quot;schema&quot;:{&quot;name&quot;:&quot;contentType&quot;,&quot
 [...]
                 
capabilities='["AUTHENTICATE","CREATE","UPDATE","DELETE","SEARCH","SYNC"]'/>
 
   <ExternalResource id="ws-target-resource-1" 
connector_id="88a7a819-dab5-46b4-9b90-0b9769eabdb8"
@@ -919,7 +919,7 @@ a password reset was requested for ${user.getUsername()}.
 
 In order to complete this request, you need to visit this link:
 
-http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
+http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}
 
 If you did not request this reset, just ignore the present e-mail.
 
@@ -930,7 +930,7 @@ Best regards."
 a password reset was requested for ${user.getUsername()}.&lt;/p&gt;
 
 &lt;p&gt;In order to complete this request, you need to visit this 
-&lt;a 
href=&quot;http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
+&lt;a 
href=&quot;http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll('
 ', '%20')}&quot;&gt;link&lt;/a&gt;&lt;/p&gt;.
 
 &lt;p&gt;If you did not request this reset, just ignore the present 
e-mail.&lt;/p&gt;
 
diff --git a/core/persistence-jpa/src/test/resources/domains/TwoContent.xml 
b/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
index 8724010633..c0b90e5d37 100644
--- a/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
@@ -94,7 +94,7 @@ we are happy to inform you that the password request was 
successfully executed f
 
   <ConnInstance id="b7ea96c3-c633-488b-98a0-b52ac35850f7" 
bundleName="net.tirasa.connid.bundles.ldap" displayName="LDAP"
                 adminRealm_id="ea696a4f-e77a-4ef1-be67-8f8093bc8686"
-                location="${connid.location}"
+                location="${syncope.connid.location}"
                 connectorName="net.tirasa.connid.bundles.ldap.LdapConnector"
                 version="${connid.ldap.version}" 
                 
jsonConf='[{"schema":{"name":"synchronizePasswords","displayName":"Enable 
Password Synchronization","helpMessage":"If true, the connector will 
synchronize passwords. The Password Capture Plugin needs to be installed for 
password synchronization to 
work.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["false"]},{"schema":{"name":"maintainLdapGroupMembership","displayName":"Maintain
 LDAP Group Membership" [...]
diff --git a/core/provisioning-java/pom.xml b/core/provisioning-java/pom.xml
index 542e4314d4..16cce32ceb 100644
--- a/core/provisioning-java/pom.xml
+++ b/core/provisioning-java/pom.xml
@@ -175,6 +175,17 @@ under the License.
         </executions>
       </plugin>
       
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <systemProperties>
+            
<syncope.conf.dir>${project.build.directory}/test-classes</syncope.conf.dir>
+            
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
+          </systemProperties>
+        </configuration>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
index 3d10cc299f..7bbdf8cce6 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
@@ -22,7 +22,6 @@ import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.Optional;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.ConnInstanceTO;
@@ -232,12 +231,13 @@ public class ConnInstanceDataBinderImpl implements 
ConnInstanceDataBinder {
             properties.getPropertyNames().forEach(propName -> {
                 ConnConfPropSchema schema = 
build(properties.getProperty(propName));
 
-                Optional<ConnConfProperty> property = 
connInstanceTO.getConf(propName);
-                if (property.isEmpty()) {
-                    property = Optional.of(new ConnConfProperty());
-                    connInstanceTO.getConf().add(property.get());
-                }
-                property.get().setSchema(schema);
+                ConnConfProperty property = connInstanceTO.getConf(propName).
+                        orElseGet(() -> {
+                            ConnConfProperty p = new ConnConfProperty();
+                            connInstanceTO.getConf().add(p);
+                            return p;
+                        });
+                property.setSchema(schema);
             });
         } catch (Exception e) {
             LOG.error("Could not get ConnId information for {} / {}#{}#{}",
diff --git a/core/starter/src/main/resources/core.properties 
b/core/starter/src/main/resources/core.properties
index b9c992abda..933aed4181 100644
--- a/core/starter/src/main/resources/core.properties
+++ b/core/starter/src/main/resources/core.properties
@@ -24,8 +24,6 @@ server.servlet.encoding.charset=UTF-8
 server.servlet.encoding.enabled=true
 server.servlet.encoding.force=true
 
-conf.directory=${conf.directory}
-
 server.servlet.contextPath=/syncope
 cxf.path=/rest
 
@@ -67,7 +65,7 @@ 
provisioning.propagationTaskExecutorAsyncExecutor.queueCapacity=100
 
 provisioning.virAttrCacheSpec=maximumSize=5000,expireAfterAccess=1m
 
-provisioning.connIdLocation=${connid.location}
+provisioning.connIdLocation=${syncope.connid.location}
 
 provisioning.quartz.delegate=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
 provisioning.quartz.sql=tables_postgres.sql
diff --git a/docker/core/src/main/resources/Dockerfile 
b/docker/core/src/main/resources/Dockerfile
index 1f7840f390..71e0de25b5 100644
--- a/docker/core/src/main/resources/Dockerfile
+++ b/docker/core/src/main/resources/Dockerfile
@@ -40,7 +40,7 @@ COPY lib/syncope-docker-core-*war /opt/syncope/lib/syncope.war
 
 ENV SPRING_PROFILES_ACTIVE=docker
 ENV LOADER_PATH="/opt/syncope/conf,/opt/syncope/lib"
-ENV JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m 
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC 
-Djava.security.egd=file:/dev/./urandom"
+ENV JAVA_OPTS="-Dfile.encoding=UTF-8 -Dsyncope.conf.dir=/opt/syncope/conf 
-Dsyncope.connid.location=file:/opt/syncope/bundles -server -Xms1536m -Xmx1536m 
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC 
-Djava.security.egd=file:/dev/./urandom"
 
 COPY startup.sh /opt/syncope/bin
 RUN chmod 755 /opt/syncope/bin/startup.sh
diff --git a/docker/core/src/main/resources/core-docker.properties 
b/docker/core/src/main/resources/core-docker.properties
index 44fe8dc9b7..cc26066714 100644
--- a/docker/core/src/main/resources/core-docker.properties
+++ b/docker/core/src/main/resources/core-docker.properties
@@ -25,6 +25,4 @@ security.anonymousKey=${ANONYMOUS_KEY:anonymousKey}
 
 persistence.remoteCommitProvider=${OPENJPA_REMOTE_COMMIT}
 
-provisioning.connIdLocation=${connid.location}
-
 logging.config=file:///opt/syncope/conf/log4j2.xml
diff --git a/docker/pom.xml b/docker/pom.xml
index 0b0df83430..d0d3a40b49 100644
--- a/docker/pom.xml
+++ b/docker/pom.xml
@@ -34,10 +34,7 @@ under the License.
   <packaging>pom</packaging>
 
   <properties>
-    <conf.directory>/opt/syncope/conf</conf.directory>
     <bundles.directory>/opt/syncope/bundles</bundles.directory>
-    <connid.location>file:${bundles.directory}/</connid.location>
-    <log.directory>/opt/syncope/log</log.directory>
 
     <rootpom.basedir>${basedir}/..</rootpom.basedir>
   </properties>
diff --git a/docker/wa/src/main/resources/Dockerfile 
b/docker/wa/src/main/resources/Dockerfile
index ea5b7a6caa..f5b7c10f4a 100644
--- a/docker/wa/src/main/resources/Dockerfile
+++ b/docker/wa/src/main/resources/Dockerfile
@@ -33,7 +33,7 @@ COPY syncope-docker-wa-*war /opt/syncope/lib/syncope-wa.war
 
 ENV SPRING_PROFILES_ACTIVE=docker
 ENV LOADER_PATH="/opt/syncope/conf,/opt/syncope/lib"
-ENV JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m 
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC 
-Djava.security.egd=file:/dev/./urandom"
+ENV JAVA_OPTS="-Dfile.encoding=UTF-8 -Dsyncope.conf.dir=/opt/syncope/conf 
-server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m 
-XX:+DisableExplicitGC -Djava.security.egd=file:/dev/./urandom"
 
 COPY startup.sh /opt/syncope/bin
 RUN chmod 755 /opt/syncope/bin/startup.sh
diff --git a/docker/wa/src/main/resources/wa-docker.properties 
b/docker/wa/src/main/resources/wa-docker.properties
index 024729f11c..b823b1ad76 100644
--- a/docker/wa/src/main/resources/wa-docker.properties
+++ b/docker/wa/src/main/resources/wa-docker.properties
@@ -20,10 +20,6 @@ keymaster.password=${KEYMASTER_PASSWORD}
 
 cas.server.name=${CAS_SERVER_NAME}
 
-conf.directory=/opt/syncope/conf
-cas.standalone.configuration-directory=${conf.directory}
-cas.authn.saml-idp.metadata.http.metadata-backup-location=file:${conf.directory}/saml
-
 service.discovery.address=${SERVICE_DISCOVERY_ADDRESS}
 
 wa.anonymousUser=${ANONYMOUS_USER:anonymous}
diff --git 
a/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/NoOpLogoutHandler.java
 
b/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/NoOpSessionLogoutHandler.java
similarity index 86%
rename from 
ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/NoOpLogoutHandler.java
rename to 
ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/NoOpSessionLogoutHandler.java
index 18fd27d4ad..3b0ecccca7 100644
--- 
a/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/NoOpLogoutHandler.java
+++ 
b/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/NoOpSessionLogoutHandler.java
@@ -18,7 +18,7 @@
  */
 package org.apache.syncope.core.logic.oidc;
 
-import org.pac4j.core.logout.handler.LogoutHandler;
+import org.pac4j.core.logout.handler.SessionLogoutHandler;
 
-public class NoOpLogoutHandler implements LogoutHandler {
+public class NoOpSessionLogoutHandler implements SessionLogoutHandler {
 }
diff --git 
a/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCClientCache.java
 
b/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCClientCache.java
index 6a34c71d50..4304e677dd 100644
--- 
a/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCClientCache.java
+++ 
b/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCClientCache.java
@@ -108,7 +108,7 @@ public class OIDCClientCache {
         config.setProviderMetadata(metadata);
         config.setScope("openid profile email address phone offline_access");
         config.setUseNonce(false);
-        config.setLogoutHandler(new NoOpLogoutHandler());
+        config.setSessionLogoutHandler(new NoOpSessionLogoutHandler());
 
         OidcClient client = new OidcClient(config);
         client.setName(op.getName());
diff --git 
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/init/SAML2SP4UILoader.java
 
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/init/SAML2SP4UILoader.java
index e090231b52..6472234b7c 100644
--- 
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/init/SAML2SP4UILoader.java
+++ 
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/init/SAML2SP4UILoader.java
@@ -27,7 +27,7 @@ import 
org.apache.syncope.common.lib.types.ImplementationTypesHolder;
 import org.apache.syncope.common.lib.types.SAML2SP4UIEntitlement;
 import org.apache.syncope.common.lib.types.SAML2SP4UIImplementationType;
 import org.apache.syncope.core.logic.SAML2SP4UIProperties;
-import org.apache.syncope.core.logic.saml2.NoOpLogoutHandler;
+import org.apache.syncope.core.logic.saml2.NoOpSessionLogoutHandler;
 import org.apache.syncope.core.persistence.api.SyncopeCoreLoader;
 import org.pac4j.saml.config.SAML2Configuration;
 import org.pac4j.saml.metadata.keystore.BaseSAML2KeystoreGenerator;
@@ -88,7 +88,7 @@ public class SAML2SP4UILoader implements SyncopeCoreLoader {
         cfg.setAuthnRequestSigned(true);
         cfg.setSpLogoutRequestSigned(true);
         cfg.setAcceptedSkew(props.getSkew());
-        cfg.setLogoutHandler(new NoOpLogoutHandler());
+        cfg.setSessionLogoutHandler(new NoOpSessionLogoutHandler());
 
         return cfg;
     }
diff --git 
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/NoOpLogoutHandler.java
 
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/NoOpSessionLogoutHandler.java
similarity index 86%
rename from 
ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/NoOpLogoutHandler.java
rename to 
ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/NoOpSessionLogoutHandler.java
index 301502ef92..73eb07e414 100644
--- 
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/NoOpLogoutHandler.java
+++ 
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/NoOpSessionLogoutHandler.java
@@ -18,7 +18,7 @@
  */
 package org.apache.syncope.core.logic.saml2;
 
-import org.pac4j.core.logout.handler.LogoutHandler;
+import org.pac4j.core.logout.handler.SessionLogoutHandler;
 
-public class NoOpLogoutHandler implements LogoutHandler {
+public class NoOpSessionLogoutHandler implements SessionLogoutHandler {
 }
diff --git a/ext/saml2sp4ui/logic/src/main/resources/core-saml2sp4ui.properties 
b/ext/saml2sp4ui/logic/src/main/resources/core-saml2sp4ui.properties
index 73c54d2df4..475ba7f2c5 100644
--- a/ext/saml2sp4ui/logic/src/main/resources/core-saml2sp4ui.properties
+++ b/ext/saml2sp4ui/logic/src/main/resources/core-saml2sp4ui.properties
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 saml2.sp4ui.skew=300
-saml2.sp4ui.keystore=file://${conf.directory}/saml.keystore.jks
+saml2.sp4ui.keystore=file://${syncope.conf.dir}/saml.keystore.jks
 saml2.sp4ui.keystore.type=jks
 saml2.sp4ui.keystore.storepass=changeit
 saml2.sp4ui.keystore.keypass=changeit
diff --git a/fit/build-tools/pom.xml b/fit/build-tools/pom.xml
index 6a375e6450..986a74cd66 100644
--- a/fit/build-tools/pom.xml
+++ b/fit/build-tools/pom.xml
@@ -317,8 +317,6 @@ under the License.
                   
<extractDir>${project.build.directory}/cargo/extract</extractDir>
                 </zipUrlInstaller>
                 <timeout>300000</timeout>
-                <log>${cargo.log}</log>
-                <output>${cargo.output}</output>
               </container>
               <configuration>
                 <properties>
@@ -359,8 +357,6 @@ under the License.
                   
<extractDir>${project.build.directory}/cargo/extract</extractDir>
                 </zipUrlInstaller>
                 <timeout>300000</timeout>
-                <log>${cargo.log}</log>
-                <output>${cargo.output}</output>
               </container>
               <configuration>
                 <properties>
@@ -395,8 +391,6 @@ under the License.
                   
<extractDir>${project.build.directory}/cargo/extract</extractDir>
                 </zipUrlInstaller>
                 <timeout>300000</timeout>
-                <log>${cargo.log}</log>
-                <output>${cargo.output}</output>
               </container>
               <configuration>
                 <properties>
diff --git a/fit/console-reference/pom.xml b/fit/console-reference/pom.xml
index b17e3e3699..bbd84dfe8f 100644
--- a/fit/console-reference/pom.xml
+++ b/fit/console-reference/pom.xml
@@ -113,8 +113,6 @@ under the License.
               <extractDir>${project.build.directory}/cargo/extract</extractDir>
             </zipUrlInstaller>
             <timeout>300000</timeout>
-            <log>${cargo.log}</log>
-            <output>${cargo.output}</output>
 
             <systemProperties>
               <java.security.egd>file:/dev/./urandom</java.security.egd>
@@ -219,25 +217,6 @@ under the License.
     <!-- requires JAVA_HOME set to the latest JDK from 
https://github.com/TravaOpenJDK/trava-jdk-11-dcevm -->
     <profile>
       <id>hotswap</id>
-      
-      <dependencies>
-        <!-- wicket-ioc depends on cglib, need to exclude it for hotswap to 
work -->
-        <dependency>
-          <groupId>org.apache.syncope.client.idm</groupId>
-          <artifactId>syncope-client-idm-console</artifactId>
-          <version>${project.version}</version>
-          <exclusions>
-            <exclusion>
-              <groupId>cglib</groupId>
-              <artifactId>cglib</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>cglib</groupId>
-          <artifactId>cglib-nodep</artifactId>
-        </dependency>
-      </dependencies>
 
       <build>
         <defaultGoal>clean verify cargo:run</defaultGoal>
diff --git a/fit/console-reference/src/main/resources/log4j2.xml 
b/fit/console-reference/src/main/resources/log4j2.xml
index 0750199eae..b52ad4e08d 100644
--- a/fit/console-reference/src/main/resources/log4j2.xml
+++ b/fit/console-reference/src/main/resources/log4j2.xml
@@ -21,8 +21,8 @@ under the License.
 
   <appenders>
 
-    <RollingRandomAccessFile name="main" 
fileName="${log.directory}/console.log"
-                             
filePattern="${log.directory}/console-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${sys:syncope.log.dir}/console.log"
+                             
filePattern="${sys:syncope.log.dir}/console-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml
index b1ea5108d0..7265902cbc 100644
--- a/fit/core-reference/pom.xml
+++ b/fit/core-reference/pom.xml
@@ -281,8 +281,6 @@ under the License.
               <extractDir>${project.build.directory}/cargo/extract</extractDir>
             </zipUrlInstaller>
             <timeout>300000</timeout>
-            <log>${cargo.log}</log>
-            <output>${cargo.output}</output>
             <systemProperties>
               <java.security.egd>file:/dev/./urandom</java.security.egd>
               <java.util.secureRandomSeed>true</java.util.secureRandomSeed>
@@ -1485,8 +1483,6 @@ under the License.
                   
<downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives</downloadDir>
                   
<extractDir>${project.build.directory}/cargo/extract</extractDir>
                 </zipUrlInstaller>
-                <log>${cargo.log}</log>
-                <output>${cargo.output}</output>
               </container>
               <configuration>
                 <properties>
@@ -1590,8 +1586,6 @@ under the License.
                   
<downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives</downloadDir>
                   
<extractDir>${project.build.directory}/cargo/extract</extractDir>
                 </zipUrlInstaller>
-                <log>${cargo.log}</log>
-                <output>${cargo.output}</output>
               </container>
               <configuration>
                 <properties>
diff --git a/fit/core-reference/src/main/resources/core-all.properties 
b/fit/core-reference/src/main/resources/core-all.properties
index 3946fa1a95..584df2005d 100644
--- a/fit/core-reference/src/main/resources/core-all.properties
+++ b/fit/core-reference/src/main/resources/core-all.properties
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-saml2.sp4ui.keystore=file://${conf.directory}/saml.keystore.jks
+saml2.sp4ui.keystore=file://${syncope.conf.dir}/saml.keystore.jks
 saml2.sp4ui.keystore-type=jks
 saml2.sp4ui.keystore-storepass=changeit
 saml2.sp4ui.keystore-keypass=changeit
diff --git a/fit/core-reference/src/main/resources/core-embedded.properties 
b/fit/core-reference/src/main/resources/core-embedded.properties
index 4aba37e36b..778a6d3478 100644
--- a/fit/core-reference/src/main/resources/core-embedded.properties
+++ b/fit/core-reference/src/main/resources/core-embedded.properties
@@ -68,7 +68,7 @@ 
provisioning.quartz.delegate=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
 provisioning.quartz.sql=tables_h2.sql
 provisioning.quartz.waitForJobsToCompleteOnShutdown=false
 
-provisioning.connIdLocation=${connid.location},\
+provisioning.connIdLocation=${syncope.connid.location},\
 connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}
 
 spring.mail.host=localhost
diff --git a/fit/core-reference/src/main/resources/log4j2.xml 
b/fit/core-reference/src/main/resources/log4j2.xml
index dc0f24be8b..476e7b9641 100644
--- a/fit/core-reference/src/main/resources/log4j2.xml
+++ b/fit/core-reference/src/main/resources/log4j2.xml
@@ -20,8 +20,8 @@ under the License.
 <configuration status="WARN">
 
   <appenders>
-    <RollingRandomAccessFile name="main" fileName="${log.directory}/core.log"
-                             
filePattern="${log.directory}/core-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${sys:syncope.log.dir}/core.log"
+                             
filePattern="${sys:syncope.log.dir}/core-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %notEmpty{[operation.id=%X{operation.id}] 
}%-5level %logger - %msg%n</pattern>
@@ -32,8 +32,8 @@ under the License.
       </Policies>
     </RollingRandomAccessFile>
 
-    <RollingRandomAccessFile name="persistence" 
fileName="${log.directory}/core-persistence.log"
-                             
filePattern="${log.directory}/core-persistence-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="persistence" 
fileName="${sys:syncope.log.dir}/core-persistence.log"
+                             
filePattern="${sys:syncope.log.dir}/core-persistence-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
@@ -44,8 +44,8 @@ under the License.
       </Policies>
     </RollingRandomAccessFile>
 
-    <RollingRandomAccessFile name="rest" 
fileName="${log.directory}/core-rest.log"
-                             
filePattern="${log.directory}/core-rest-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="rest" 
fileName="${sys:syncope.log.dir}/core-rest.log"
+                             
filePattern="${sys:syncope.log.dir}/core-rest-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
@@ -56,8 +56,8 @@ under the License.
       </Policies>
     </RollingRandomAccessFile>
 
-    <RollingRandomAccessFile name="connid" 
fileName="${log.directory}/core-connid.log"
-                             
filePattern="${log.directory}/core-connid-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="connid" 
fileName="${sys:syncope.log.dir}/core-connid.log"
+                             
filePattern="${sys:syncope.log.dir}/core-connid-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %msg%n</pattern>
diff --git a/fit/core-reference/src/test/resources/log4j2.xml 
b/fit/core-reference/src/test/resources/log4j2.xml
index 875d5e727f..7f66aab5d8 100644
--- a/fit/core-reference/src/test/resources/log4j2.xml
+++ b/fit/core-reference/src/test/resources/log4j2.xml
@@ -19,8 +19,8 @@ under the License.
 -->
 <configuration status="WARN" shutdownHook="disable">
   <appenders>
-    <RollingRandomAccessFile name="main" 
fileName="${log.directory}/core-fit.log"
-                             
filePattern="${log.directory}/core-fit-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${project.build.directory}/log/core-fit.log"
+                             
filePattern="${project.build.directory}/log/core-fit-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
diff --git a/fit/core-reference/src/test/resources/test.properties 
b/fit/core-reference/src/test/resources/test.properties
index b8a67ffac4..0d0312daef 100644
--- a/fit/core-reference/src/test/resources/test.properties
+++ b/fit/core-reference/src/test/resources/test.properties
@@ -19,7 +19,7 @@ basedir=${basedir}
 test.csv.src=${project.build.directory}/test-classes/test.csv
 test.csv.dst=${test.csvdir.path}/test.csv
 
-test.log.dir=${log.directory}
+test.log.dir=${project.build.directory}/log
 
 testmail.smtpport=${testmail.smtpport}
 testmail.pop3port=${testmail.pop3port}
diff --git a/fit/enduser-reference/pom.xml b/fit/enduser-reference/pom.xml
index 2756e16ae6..7563c826c2 100644
--- a/fit/enduser-reference/pom.xml
+++ b/fit/enduser-reference/pom.xml
@@ -108,8 +108,6 @@ under the License.
               <extractDir>${project.build.directory}/cargo/extract</extractDir>
             </zipUrlInstaller>
             <timeout>300000</timeout>
-            <log>${cargo.log}</log>
-            <output>${cargo.output}</output>
 
             <systemProperties>
               <java.security.egd>file:/dev/./urandom</java.security.egd>
@@ -220,25 +218,6 @@ under the License.
     <!-- requires JAVA_HOME set to the latest JDK from 
https://github.com/TravaOpenJDK/trava-jdk-11-dcevm -->
     <profile>
       <id>hotswap</id>
-      
-      <dependencies>
-        <!-- wicket-ioc depends on cglib, need to exclude it for hotswap to 
work -->
-        <dependency>
-          <groupId>org.apache.syncope.client.idrepo</groupId>
-          <artifactId>syncope-client-idrepo-enduser</artifactId>
-          <version>${project.version}</version>
-          <exclusions>
-            <exclusion>
-              <groupId>cglib</groupId>
-              <artifactId>cglib</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>cglib</groupId>
-          <artifactId>cglib-nodep</artifactId>
-        </dependency>
-      </dependencies>
 
       <build>
         <defaultGoal>clean verify cargo:run</defaultGoal>
diff --git a/fit/enduser-reference/src/main/resources/log4j2.xml 
b/fit/enduser-reference/src/main/resources/log4j2.xml
index bec86676a2..a04bdc04c2 100644
--- a/fit/enduser-reference/src/main/resources/log4j2.xml
+++ b/fit/enduser-reference/src/main/resources/log4j2.xml
@@ -21,8 +21,8 @@ under the License.
 
   <appenders>
 
-    <RollingRandomAccessFile name="main" 
fileName="${log.directory}/enduser.log"
-                             
filePattern="${log.directory}/enduser-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${sys:syncope.log.dir}/enduser.log"
+                             
filePattern="${sys:syncope.log.dir}/enduser-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
diff --git a/fit/wa-reference/pom.xml b/fit/wa-reference/pom.xml
index 4693ef4bc1..138a77e47a 100644
--- a/fit/wa-reference/pom.xml
+++ b/fit/wa-reference/pom.xml
@@ -155,8 +155,6 @@ under the License.
               <extractDir>${project.build.directory}/cargo/extract</extractDir>
             </zipUrlInstaller>
             <timeout>600000</timeout>
-            <log>${cargo.log}</log>
-            <output>${cargo.output}</output>
 
             <systemProperties>
               <java.security.egd>file:/dev/./urandom</java.security.egd>
@@ -258,7 +256,7 @@ under the License.
         <artifactId>maven-surefire-plugin</artifactId>
         <inherited>true</inherited>
         <configuration>
-          
<argLine>-Djavax.net.ssl.trustStore=${basedir}/src/test/resources/keystore.jks 
-Djavax.net.ssl.trustStorePassword=password</argLine>          
+          
<argLine>-Djavax.net.ssl.trustStore=${basedir}/src/test/resources/keystore.jks 
-Djavax.net.ssl.trustStorePassword=password</argLine>
         </configuration>
       </plugin>
       <plugin>
@@ -266,7 +264,7 @@ under the License.
         <artifactId>maven-failsafe-plugin</artifactId>
         <inherited>true</inherited>
         <configuration>
-          
<argLine>-Djavax.net.ssl.trustStore=${basedir}/src/test/resources/keystore.jks 
-Djavax.net.ssl.trustStorePassword=password</argLine>          
+          
<argLine>-Djavax.net.ssl.trustStore=${basedir}/src/test/resources/keystore.jks 
-Djavax.net.ssl.trustStorePassword=password</argLine>
         </configuration>
         <executions>
           <execution>
diff --git a/fit/wa-reference/src/main/resources/log4j2.xml 
b/fit/wa-reference/src/main/resources/log4j2.xml
index 2d3bb2e6ec..9254c8ecab 100644
--- a/fit/wa-reference/src/main/resources/log4j2.xml
+++ b/fit/wa-reference/src/main/resources/log4j2.xml
@@ -21,8 +21,8 @@ under the License.
 
   <appenders>
 
-    <RollingRandomAccessFile name="main" fileName="${log.directory}/wa.log"
-                             
filePattern="${log.directory}/wa-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${sys:syncope.log.dir}/wa.log"
+                             
filePattern="${sys:syncope.log.dir}/wa-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
diff --git a/fit/wa-reference/src/main/resources/wa-embedded.properties 
b/fit/wa-reference/src/main/resources/wa-embedded.properties
index 16f6bf6270..f050292fa7 100644
--- a/fit/wa-reference/src/main/resources/wa-embedded.properties
+++ b/fit/wa-reference/src/main/resources/wa-embedded.properties
@@ -23,14 +23,6 @@ keymaster.password=${anonymousKey}
 cas.server.name=https://localhost:9443
 cas.server.prefix=${cas.server.name}/syncope-wa
 
-conf.directory=${conf.directory}
-cas.standalone.configuration-directory=${conf.directory}
-
-cas.authn.saml-idp.core.entity-id=${cas.server.prefix}/saml
-cas.authn.saml-idp.metadata.http.metadata-backup-location=file:${conf.directory}/saml
-
-cas.authn.oidc.core.issuer=${cas.server.prefix}/oidc
-
 service.discovery.address=https://localhost:9443/syncope-wa/
 
 ##
diff --git a/fit/wa-reference/src/test/resources/log4j2.xml 
b/fit/wa-reference/src/test/resources/log4j2.xml
index d27ffdfc4a..b204e6f848 100644
--- a/fit/wa-reference/src/test/resources/log4j2.xml
+++ b/fit/wa-reference/src/test/resources/log4j2.xml
@@ -19,8 +19,8 @@ under the License.
 -->
 <configuration status="WARN" shutdownHook="disable">
   <appenders>
-    <RollingRandomAccessFile name="main" fileName="${log.directory}/wa-fit.log"
-                             
filePattern="${log.directory}/wa-fit-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${project.build.directory}/log/wa-fit.log"
+                             
filePattern="${project.build.directory}/log/wa-fit-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
diff --git a/pom.xml b/pom.xml
index db00bfdbeb..ead40c69c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -492,8 +492,6 @@ under the License.
     <cargo.tomcat.ajp.port>9889</cargo.tomcat.ajp.port>
     <cargo.rmi.port>9805</cargo.rmi.port>
     <cargo.deployable.ping.timeout>60000</cargo.deployable.ping.timeout>
-    <cargo.log>${log.directory}/cargo.log</cargo.log>
-    <cargo.output>${log.directory}/cargo-output.log</cargo.output>
 
     <tomcat.version>10.1.5</tomcat.version>
     <wildfly.version>27.0.1.Final</wildfly.version>
@@ -505,15 +503,12 @@ under the License.
     <docker.mariadb.version>10</docker.mariadb.version>
 
     <jdbc.postgresql.version>42.5.1</jdbc.postgresql.version>
-    <jdbc.mysql.version>8.0.31</jdbc.mysql.version>
-    <jdbc.mariadb.version>3.0.8</jdbc.mariadb.version>
+    <jdbc.mysql.version>8.0.32</jdbc.mysql.version>
+    <jdbc.mariadb.version>3.0.10</jdbc.mariadb.version>
     <jdbc.mssql.version>11.2.1.jre</jdbc.mssql.version>
     <jdbc.oracle.version>21.8.0.0</jdbc.oracle.version>
 
-    <conf.directory>${project.build.directory}/test-classes</conf.directory>
     <bundles.directory>${project.build.directory}/bundles</bundles.directory>
-    <connid.location>file:${bundles.directory}/</connid.location>
-    <log.directory>${project.build.directory}/log</log.directory>
 
     <adminUser>admin</adminUser>
     <anonymousUser>anonymous</anonymousUser>
@@ -1633,6 +1628,15 @@ under the License.
           <artifactId>cargo-maven3-plugin</artifactId>
           <version>1.10.4</version>
           <configuration>
+            <container>
+              <log>${project.build.directory}/log/cargo.log</log>
+              <output>${project.build.directory}/log/cargo-output.log</output>
+              <systemProperties>
+                
<syncope.conf.dir>${project.build.directory}/test-classes</syncope.conf.dir>
+                
<syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
+                
<syncope.log.dir>${project.build.directory}/log</syncope.log.dir>
+              </systemProperties>
+            </container>
             <configuration>
               <type>standalone</type>
               <properties>
@@ -2291,6 +2295,59 @@ under the License.
         <module>docker</module>
       </modules>
     </profile>
+
+    <profile>
+      <id>win</id>
+
+      <activation>
+        <os>
+          <family>Windows</family>
+        </os>
+      </activation>
+
+      <properties>
+        
<syncope.conf.dir>${project.build.directory}/test-classes</syncope.conf.dir>
+      </properties>
+
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.gmavenplus</groupId>
+            <artifactId>gmavenplus-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>convert-win-paths</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>execute</goal>
+                </goals>
+                <configuration>
+                  <bindAllProjectProperties>true</bindAllProjectProperties>
+                  <scripts>
+                    <script><![CDATA[
+                project.properties['win.syncope.conf.dir'] = 
project.properties['syncope.conf.dir'].replace("\\", "/")
+                ]]></script>
+                  </scripts>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <groupId>org.codehaus.cargo</groupId>
+            <artifactId>cargo-maven3-plugin</artifactId>
+            <inherited>true</inherited>
+            <configuration>
+              <container>
+                <systemProperties>
+                  <syncope.conf.dir>${win.syncope.conf.dir}</syncope.conf.dir>
+                </systemProperties>
+              </container>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
   </profiles>
 
   <modules>
diff --git a/sra/pom.xml b/sra/pom.xml
index 19c665398e..f71574f7a4 100644
--- a/sra/pom.xml
+++ b/sra/pom.xml
@@ -166,6 +166,7 @@ under the License.
         <configuration>
           <systemPropertyVariables>
             
<reactor.netty.http.server.accessLogEnabled>true</reactor.netty.http.server.accessLogEnabled>
+            <syncope.log.dir>${project.build.directory}/log</syncope.log.dir>
           </systemPropertyVariables>
         </configuration>
       </plugin>
diff --git a/sra/src/main/java/org/apache/syncope/sra/SecurityConfig.java 
b/sra/src/main/java/org/apache/syncope/sra/SecurityConfig.java
index 6b4301ab97..8f69eccfe4 100644
--- a/sra/src/main/java/org/apache/syncope/sra/SecurityConfig.java
+++ b/sra/src/main/java/org/apache/syncope/sra/SecurityConfig.java
@@ -32,7 +32,7 @@ import org.apache.syncope.sra.security.LogoutRouteMatcher;
 import org.apache.syncope.sra.security.PublicRouteMatcher;
 import org.apache.syncope.sra.security.cas.CASSecurityConfigUtils;
 import org.apache.syncope.sra.security.oauth2.OAuth2SecurityConfigUtils;
-import org.apache.syncope.sra.security.pac4j.NoOpLogoutHandler;
+import org.apache.syncope.sra.security.pac4j.NoOpSessionLogoutHandler;
 import org.apache.syncope.sra.security.saml2.SAML2MetadataEndpoint;
 import org.apache.syncope.sra.security.saml2.SAML2SecurityConfigUtils;
 import 
org.apache.syncope.sra.security.saml2.SAML2WebSsoAuthenticationWebFilter;
@@ -273,7 +273,7 @@ public class SecurityConfig {
         
cfg.setServiceProviderMetadataResourceFilepath(props.getSaml2().getSpMetadataFilePath());
         cfg.setAcceptedSkew(props.getSaml2().getSkew());
 
-        cfg.setLogoutHandler(new NoOpLogoutHandler());
+        cfg.setSessionLogoutHandler(new NoOpSessionLogoutHandler());
 
         SAML2Client saml2Client = new SAML2Client(cfg);
         saml2Client.setName(SRAProperties.AMType.SAML2.name());
diff --git 
a/sra/src/main/java/org/apache/syncope/sra/security/pac4j/NoOpLogoutHandler.java
 
b/sra/src/main/java/org/apache/syncope/sra/security/pac4j/NoOpSessionLogoutHandler.java
similarity index 86%
rename from 
sra/src/main/java/org/apache/syncope/sra/security/pac4j/NoOpLogoutHandler.java
rename to 
sra/src/main/java/org/apache/syncope/sra/security/pac4j/NoOpSessionLogoutHandler.java
index e41e7306c6..c99f0bd9ba 100644
--- 
a/sra/src/main/java/org/apache/syncope/sra/security/pac4j/NoOpLogoutHandler.java
+++ 
b/sra/src/main/java/org/apache/syncope/sra/security/pac4j/NoOpSessionLogoutHandler.java
@@ -18,8 +18,8 @@
  */
 package org.apache.syncope.sra.security.pac4j;
 
-import org.pac4j.core.logout.handler.LogoutHandler;
+import org.pac4j.core.logout.handler.SessionLogoutHandler;
 
-public class NoOpLogoutHandler implements LogoutHandler {
+public class NoOpSessionLogoutHandler implements SessionLogoutHandler {
 
 }
diff --git a/sra/src/main/resources/log4j2.xml 
b/sra/src/main/resources/log4j2.xml
index 3e0fa0c89a..bd7585adee 100644
--- a/sra/src/main/resources/log4j2.xml
+++ b/sra/src/main/resources/log4j2.xml
@@ -21,8 +21,8 @@ under the License.
 
   <appenders>
 
-    <RollingRandomAccessFile name="main" fileName="${log.directory}/sra.log"
-                             
filePattern="${log.directory}/sra-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="main" 
fileName="${sys:syncope.log.dir}/sra.log"
+                             
filePattern="${sys:syncope.log.dir}/sra-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
@@ -33,8 +33,8 @@ under the License.
       </Policies>
     </RollingRandomAccessFile>
     
-    <RollingRandomAccessFile name="access" 
fileName="${log.directory}/sra-access.log"
-                             
filePattern="${log.directory}/sra-access-%d{yyyy-MM-dd}.log.gz"
+    <RollingRandomAccessFile name="access" 
fileName="${sys:syncope.log.dir}/sra-access.log"
+                             
filePattern="${sys:syncope.log.dir}/sra-access-%d{yyyy-MM-dd}.log.gz"
                              immediateFlush="false" append="true">
       <PatternLayout>
         <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
diff --git a/src/main/asciidoc/reference-guide/configuration/deployment.adoc 
b/src/main/asciidoc/reference-guide/configuration/deployment.adoc
index 7321ddec7e..0c1bd0cfd2 100644
--- a/src/main/asciidoc/reference-guide/configuration/deployment.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/deployment.adoc
@@ -61,21 +61,21 @@ the Core application can be built and run as follows:
 
 [source,bash]
 ----
-$ mvn -P executable clean verify \
-   -Dconf.directory=/opt/syncope/conf \
-   -Dbundles.directory=/opt/syncope/bundles \
-   -Dlog.directory=/opt/syncope/log
+$ mvn -P executable clean verify
 $ cp core/target/syncope.war /opt/syncope/lib
 $ cp core/target/classes/*properties /opt/syncope/conf
 
 $ export LOADER_PATH=/opt/syncope/conf,/opt/syncope/lib
-$ java -jar /opt/syncope/lib/syncope.war
+$ java -Dsyncope.conf.dir=/opt/syncope/conf \
+  -Dsyncope.connid.location=file:/opt/syncope/bundles \
+  -Dsyncope.log.dir=/opt/syncope/log \
+  -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/application-properties.html#appendix.application-properties[documentation^];
 for example:
 
-* `--spring.config.location=/path` +
+* `--spring.config.additional-location=/path` +
  to customize the location of the configuration files
 * `--server.port=8080` +
  to change the default HTTP port
@@ -114,6 +114,9 @@ On GNU / Linux - Mac OS X, create 
`$CATALINA_HOME/bin/setenv.sh` with similar co
 
 ....
 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server \
+-Dsyncope.conf.dir=/opt/syncope/conf \
+-Dsyncope.connid.location=file:/opt/syncope/bundles \
+-Dsyncope.log.dir=/opt/syncope/log \
 -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m 
-XX:+DisableExplicitGC \
 -Djava.security.egd=file:/dev/./urandom"
 ....
@@ -121,7 +124,10 @@ JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-server \
 On MS Windows, create `%CATALINA_HOME%\bin\setenv.bat` with similar content 
(keep everything on a single line):
 
 ....
-set JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server
+set JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server \
+-Dsyncope.conf.dir=C:\opt\syncope\conf \
+-Dsyncope.connid.location=file:/C:\opt\syncope\bundles \
+-Dsyncope.log.dir=C:\opt\syncope\log \
 -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC
 ....
 
@@ -175,13 +181,24 @@ When using a datasource for internal storage, be sure to 
add
 right after `</context-root>` in 
`core/src/main/webapp/WEB-INF/glassfish-web.xml`, assuming that your Payara 
Server
 instance provides a datasource named `jdbc/syncopeMasterDataSource`.
 
+[WARNING]
+====
+Do not forget to include the following system properties:
+
+* `-Dsyncope.conf.dir=/opt/syncope/conf` +
+(required by Core and WA)
+* `-Dsyncope.connid.location=file:/opt/syncope/bundles` +
+(required by Core)
+* `-Dsyncope.log.dir=/opt/syncope/log` +
+(required by all components)
+====
+
 [TIP]
 ====
-For better performance under GNU / Linux, do not forget to include
+For better performance under GNU / Linux, do not forget to include the system 
property:
 ....
 -Djava.security.egd=file:/dev/./urandom
 ....
-among JVM options.
 ====
 
 ==== Wildfly 27
@@ -266,11 +283,22 @@ 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^]
 for the Core application.
 
+[WARNING]
+====
+Do not forget to include the following system properties:
+
+* `-Dsyncope.conf.dir=/opt/syncope/conf` +
+(required by Core and WA)
+* `-Dsyncope.connid.location=file:/opt/syncope/bundles` +
+(required by Core)
+* `-Dsyncope.log.dir=/opt/syncope/log` +
+(required by all components)
+====
+
 [TIP]
 ====
-For better performance under GNU / Linux, do not forget to include
+For better performance under GNU / Linux, do not forget to include the system 
property:
 ....
 -Djava.security.egd=file:/dev/./urandom
 ....
-among JVM options.
 ====
diff --git a/src/main/asciidoc/reference-guide/howto/keystore.adoc 
b/src/main/asciidoc/reference-guide/howto/keystore.adoc
index 70152dc27a..d1decbae5a 100644
--- a/src/main/asciidoc/reference-guide/howto/keystore.adoc
+++ b/src/main/asciidoc/reference-guide/howto/keystore.adoc
@@ -116,7 +116,7 @@ relevant part of the `core.properties` file should be:
 
 ....
 saml2.sp4ui.skew=300
-saml2.sp4ui.keystore=file://${conf.directory}/saml2sp4ui.jks
+saml2.sp4ui.keystore=file://${syncope.conf.dir}/saml2sp4ui.jks
 saml2.sp4ui.keystore.type=jks
 saml2.sp4ui.keystore.storepass=astorepass
 saml2.sp4ui.keystore.keypass=akyepass
diff --git a/src/main/asciidoc/reference-guide/usage/actuator.adoc 
b/src/main/asciidoc/reference-guide/usage/actuator.adoc
index 6c6d488cb4..3e56563944 100644
--- a/src/main/asciidoc/reference-guide/usage/actuator.adoc
+++ b/src/main/asciidoc/reference-guide/usage/actuator.adoc
@@ -23,7 +23,7 @@ Spring Boot's actuator endpoints let you monitor and interact 
with Syncope compo
 Each individual endpoint can be enabled / disabled and exposed over HTTP 
(pre-defined, under the `/actuator` subcontext)
 or JMX.
 
-Besides a number of 
https://docs.spring.io/spring-boot/docs/2.7.x/reference/htmlsingle/#actuator.endpoints[built-in
 endpoints^],
+Besides a number of 
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.endpoints[built-in
 endpoints^],
 more are made available for each component, as reported below.
 
 [NOTE]
diff --git a/src/main/asciidoc/reference-guide/usage/customization.adoc 
b/src/main/asciidoc/reference-guide/usage/customization.adoc
index a3c4fe193c..7894bac4e8 100644
--- a/src/main/asciidoc/reference-guide/usage/customization.adoc
+++ b/src/main/asciidoc/reference-guide/usage/customization.adoc
@@ -46,10 +46,7 @@ The artifacts are generated by running the Maven command 
(with reference to the
 <<deployment-directories,directory layout>>):
 
 ....
-$ mvn clean verify \
-   -Dconf.directory=/opt/syncope/conf \
-   -Dbundles.directory=/opt/syncope/bundles \
-   -Dlog.directory=/opt/syncope/log
+$ mvn clean verify
 $ cp core/target/classes/*properties /opt/syncope/conf
 $ cp console/target/classes/*properties /opt/syncope/conf
 $ cp enduser/target/classes/*properties /opt/syncope/conf
@@ -68,6 +65,15 @@ After downloading all of the dependencies that are needed, 
three following artif
 
 If no failures are encountered, your basic Apache Syncope project is now ready 
to be deployed.
 
+Do not forget to define the following system properties:
+
+* `-Dsyncope.conf.dir=/opt/syncope/conf` +
+(required by Core and WA)
+* `-Dsyncope.connid.location=file:/opt/syncope/bundles` +
+(required by Core)
+* `-Dsyncope.log.dir=/opt/syncope/log` +
+(required by all components)
+
 [[embedded-debug]]
 [TIP]
 .JPDA Debug in Embedded Mode
@@ -230,11 +236,11 @@ $ 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/current/reference/htmlsingle/#features.external-config.files[Externalized
 Configuration^]
 settings; with above reference:
 
-* <<standalone>>: `--spring.config.location=/opt/syncope/conf/`
-* <<javaee-container>>: `-Dspring.config.location=/opt/syncope/conf/`
+* <<standalone>>: `--spring.config.additional-location=/opt/syncope/conf/`
+* <<javaee-container>>: 
`-Dspring.config.additional-location=/opt/syncope/conf/`
 ====
 
 [[customization-core]]
diff --git a/standalone/pom.xml b/standalone/pom.xml
index edc4a2d14e..f87ee8c2e3 100644
--- a/standalone/pom.xml
+++ b/standalone/pom.xml
@@ -36,9 +36,6 @@ under the License.
   <properties>
     <rootpom.basedir>${basedir}/..</rootpom.basedir>
 
-    
<conf.directory>${CATALINA_HOME}/webapps/syncope/WEB-INF/classes</conf.directory>
-    
<connid.location>connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}</connid.location>
-    <log.directory>${sys:catalina.home}/logs</log.directory>
     <test.csvdir.path>./test-csvdir</test.csvdir.path>
 
     <work.dir>${project.build.directory}/standalone</work.dir>
@@ -167,6 +164,7 @@ under the License.
                 <copy 
todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-wa/WEB-INF/classes"
 overwrite="true">
                   <fileset dir="${project.build.outputDirectory}/wa"/>
                 </copy>
+                <copy 
file="../fit/wa-reference/src/test/resources/keystore.jks" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/conf" overwrite="true"/>
 
                 <mkdir 
dir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}"/>
                 <copy file="../fit/core-reference/src/test/resources/test.csv" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}"/>
@@ -187,9 +185,17 @@ under the License.
 
                 <!-- Other custom Tomcat resources -->
                 <copy file="${project.build.outputDirectory}/context.xml" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/conf" overwrite="true"/>
-                <copy file="src/main/resources/setenv.sh" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/>
-                <copy file="src/main/resources/setenv.bat" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/>
+                <copy file="${project.build.outputDirectory}/setenv.sh" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/>
+                <copy file="${project.build.outputDirectory}/setenv.bat" 
todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/>
                 <replace 
file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8080" 
value="${cargo.servlet.port}"/>
+                <replace 
file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8443" 
value="9443"/>
+                <replace 
file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml">
+                  <replacetoken><![CDATA[redirectPort="9443" 
/>]]></replacetoken>
+                  <replacevalue><![CDATA[redirectPort="9443" />
+<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="9443" 
maxThreads="200"
+scheme="https" secure="true" SSLEnabled="true" 
keystoreFile="conf/keystore.jks" keystorePass="password"
+keystoreType="JKS" clientAuth="false" sslProtocol="TLS"/>]]></replacevalue>
+                </replace>
                 <replace 
file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8009" 
value="${cargo.tomcat.ajp.port}"/>
                 <replace 
file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8005" 
value="${cargo.rmi.port}"/>
               </target>
@@ -297,6 +303,17 @@ under the License.
 
       <resource>
         <directory>src/main/resources</directory>
+        <includes>
+          <include>setenv.*</include>
+        </includes>
+        <filtering>true</filtering>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+        <excludes>
+          <exclude>setenv.*</exclude>
+        </excludes>
+        <filtering>false</filtering>
       </resource>
       <resource>
         <directory>src/assemble</directory>
diff --git a/standalone/src/main/resources/setenv.bat 
b/standalone/src/main/resources/setenv.bat
index 035c2a4f1f..eea0988396 100644
--- a/standalone/src/main/resources/setenv.bat
+++ b/standalone/src/main/resources/setenv.bat
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-set JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-Dspring.profiles.active=embedded -server -Xms2048m -Xmx2048m -XX:NewSize=256m 
-XX:MaxNewSize=256m -XX:+DisableExplicitGC -DCATALINA_HOME=%CATALINA_HOME%
+set JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-Djavax.net.ssl.trustStore=%CATALINA_HOME%\conf\keystore.jks 
-Dsyncope.connid.location=connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}
 -Dsyncope.conf.dir=%CATALINA_HOME%\webapps\syncope\WEB-INF\classes 
-Dsyncope.log.dir=%CATALINA_HOME%\logs -Dspring.profiles.active=embedded 
-server -Xms2048m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=256m 
-DCATALINA_HOME=%CATALINA_HOME%
diff --git a/standalone/src/main/resources/setenv.sh 
b/standalone/src/main/resources/setenv.sh
index 7756a66623..df66bfa9e1 100755
--- a/standalone/src/main/resources/setenv.sh
+++ b/standalone/src/main/resources/setenv.sh
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-Dspring.profiles.active=embedded -server -Xms2048m -Xmx2048m -XX:NewSize=256m 
-XX:MaxNewSize=256m -XX:+DisableExplicitGC -DCATALINA_HOME=$CATALINA_HOME"
+JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-Djavax.net.ssl.trustStore=$CATALINA_HOME/conf/keystore.jks 
-Djavax.net.ssl.trustStorePassword=password 
-Dsyncope.conf.dir=$CATALINA_HOME/webapps/syncope/WEB-INF/classes 
-Dsyncope.connid.location=connid://${testconnectorserver.key}@localhost:${testconnectorserver.port}
 -Dsyncope.log.dir=$CATALINA_HOME/logs -Dspring.profiles.active=embedded 
-server -Xms2048m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=256m 
-DCATALINA_HOME=$CATALINA_HOME"
diff --git 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WABootstrapConfiguration.java
 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WABootstrapConfiguration.java
index 1ffd7a7393..8c505bd3c4 100644
--- 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WABootstrapConfiguration.java
+++ 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WABootstrapConfiguration.java
@@ -27,7 +27,7 @@ import org.springframework.context.annotation.PropertySource;
 
 @Configuration(proxyBeanMethods = false)
 @PropertySource("classpath:wa.properties")
-@PropertySource(value = "file:${conf.directory}/wa.properties", 
ignoreResourceNotFound = true)
+@PropertySource(value = "file:${syncope.conf.dir}/wa.properties", 
ignoreResourceNotFound = true)
 public class WABootstrapConfiguration {
 
     @Configuration(proxyBeanMethods = false)
diff --git a/wa/starter/pom.xml b/wa/starter/pom.xml
index f8aa1ca397..d1fab0f8d1 100644
--- a/wa/starter/pom.xml
+++ b/wa/starter/pom.xml
@@ -439,6 +439,16 @@ under the License.
         </executions>
       </plugin>
 
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <systemProperties>
+            
<syncope.conf.dir>${project.build.directory}/test-classes</syncope.conf.dir>
+          </systemProperties>
+        </configuration>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
@@ -504,6 +514,7 @@ under the License.
             <configuration>
               <jvmArguments>
                 
-Djavax.net.ssl.trustStore=${basedir}/../../fit/wa-reference/src/test/resources/keystore.jks
 -Djavax.net.ssl.trustStorePassword=password
+                -Dsyncope.conf.dir=${project.build.directory}/test-classes
                 -Xdebug 
-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n
               </jvmArguments>
               <profiles>
diff --git a/wa/starter/src/main/resources/wa.properties 
b/wa/starter/src/main/resources/wa.properties
index 95304ee1d2..8d16065d89 100644
--- a/wa/starter/src/main/resources/wa.properties
+++ b/wa/starter/src/main/resources/wa.properties
@@ -67,8 +67,8 @@ wa.anonymousKey=${anonymousKey}
 wa.useGZIPCompression=true
 
 # Conf directories
-conf.directory=${conf.directory}
-cas.standalone.configuration-directory=${conf.directory}
+conf.directory=${syncope.conf.dir}
+cas.standalone.configuration-directory=${syncope.conf.dir}
 
 cas.server.name=http://localhost:8080
 cas.server.prefix=${cas.server.name}/syncope-wa
@@ -77,7 +77,7 @@ cas.server.scope=syncope.org
 cas.logout.follow-service-redirects=true
 
 cas.authn.saml-idp.core.entity-id=${cas.server.prefix}/saml
-cas.authn.saml-idp.metadata.http.metadata-backup-location=file:${conf.directory}/saml
+cas.authn.saml-idp.metadata.http.metadata-backup-location=file:${syncope.conf.dir}/saml
 
 cas.authn.oidc.core.issuer=${cas.server.prefix}/oidc
 
cas.authn.oidc.discovery.id-token-signing-alg-values-supported=RS256,RS384,RS512,PS256,PS384,PS512,ES256,ES384,ES512,HS256,HS384,HS512


Reply via email to