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 2023/01/24 10:32:49 UTC
[syncope] branch master updated: [SYNCOPE-1723] Removing static paths from generated artifacts (#405) (#406)
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ò <il...@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()}.</p>
<p>In order to complete this request, you need to visit this
-<a href="http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
+<a href="http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
<p>If you did not request this reset, just ignore the present e-mail.</p>
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='[{"schema":{"name":"updateScriptFileName","displayName":"updateScriptFileName","helpMessage":"updateScriptFileName","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":[]},"overridable":false,"values":["${conf.directory}/scriptedsql/UpdateScript.groovy"]},{"schem [...]
+ jsonConf='[{"schema":{"name":"updateScriptFileName","displayName":"updateScriptFileName","helpMessage":"updateScriptFileName","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":[]},"overridable":false,"values":["${syncope.conf.dir}/scriptedsql/UpdateScript.groovy"]},{"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="[{"schema":{"name":"authenticateScript","displayName":"authenticateScript","helpMessage":"authenticateScript","type":"java.lang.String","required":false,"order":6,"confidential":false,"defaultValues":[""]},"overridable":false,"values":[]},{"schema":{"name":"contentType"," [...]
+ jsonconf="[{"schema":{"name":"authenticateScript","displayName":"authenticateScript","helpMessage":"authenticateScript","type":"java.lang.String","required":false,"order":6,"confidential":false,"defaultValues":[""]},"overridable":false,"values":[]},{"schema":{"name":"contentType"," [...]
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()}.</p>
<p>In order to complete this request, you need to visit this
-<a href="http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
+<a href="http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
<p>If you did not request this reset, just ignore the present e-mail.</p>
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()}.</p>
<p>In order to complete this request, you need to visit this
-<a href="http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
+<a href="http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
<p>If you did not request this reset, just ignore the present e-mail.</p>
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='[{"schema":{"name":"updateScriptFileName","displayName":"updateScriptFileName","helpMessage":"updateScriptFileName","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":[]},"overridable":false,"values":["${conf.directory}/scriptedsql/UpdateScript.groovy"]},{"schem [...]
+ jsonConf='[{"schema":{"name":"updateScriptFileName","displayName":"updateScriptFileName","helpMessage":"updateScriptFileName","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":[]},"overridable":false,"values":["${syncope.conf.dir}/scriptedsql/UpdateScript.groovy"]},{"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="[{"schema":{"name":"authenticateScript","displayName":"authenticateScript","helpMessage":"authenticateScript","type":"java.lang.String","required":false,"order":6,"confidential":false,"defaultValues":[""]},"overridable":false,"values":[]},{"schema":{"name":"contentType"," [...]
+ jsonconf="[{"schema":{"name":"authenticateScript","displayName":"authenticateScript","helpMessage":"authenticateScript","type":"java.lang.String","required":false,"order":6,"confidential":false,"defaultValues":[""]},"overridable":false,"values":[]},{"schema":{"name":"contentType"," [...]
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()}.</p>
<p>In order to complete this request, you need to visit this
-<a href="http://localhost:9080/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
+<a href="http://localhost:${cargo.servlet.port}/syncope-enduser/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}">link</a></p>.
<p>If you did not request this reset, just ignore the present e-mail.</p>
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