This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 4_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/4_1_X by this push:
new a27e65c5f8 Cleaning up PasswordManagement code
a27e65c5f8 is described below
commit a27e65c5f8a3d3cfa92cbc6849dbb53560d73217
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Fri Feb 27 13:30:21 2026 +0100
Cleaning up PasswordManagement code
---
.../core/provisioning/java/job/TaskJob.java | 1 +
fit/wa-reference/pom.xml | 6 -----
.../src/main/resources/wa-embedded.properties | 3 +--
pom.xml | 16 ++---------
sra/pom.xml | 2 +-
.../PasswordManagementPropertySourceMapper.java | 31 +++++++++++++---------
.../syncope/wa/starter/config/WAContext.java | 8 +++---
wa/starter/src/main/resources/wa.properties | 2 ++
8 files changed, 30 insertions(+), 39 deletions(-)
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
index fc281373c3..e945c3ea74 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
@@ -54,6 +54,7 @@ public class TaskJob extends Job {
private SchedTaskJobDelegate delegate;
+ @Override
public SchedTaskJobDelegate getDelegate() {
return delegate;
}
diff --git a/fit/wa-reference/pom.xml b/fit/wa-reference/pom.xml
index fa4aeefa0a..c733f1b8b5 100644
--- a/fit/wa-reference/pom.xml
+++ b/fit/wa-reference/pom.xml
@@ -71,12 +71,6 @@ under the License.
<version>${project.version}</version>
</dependency>
- <!-- required by JDBC attribute repository -->
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- </dependency>
-
<!-- TEST -->
<dependency>
<groupId>org.apache.syncope.ext.saml2sp4ui</groupId>
diff --git a/fit/wa-reference/src/main/resources/wa-embedded.properties
b/fit/wa-reference/src/main/resources/wa-embedded.properties
index 3861744e87..8f9abcecf5 100644
--- a/fit/wa-reference/src/main/resources/wa-embedded.properties
+++ b/fit/wa-reference/src/main/resources/wa-embedded.properties
@@ -29,8 +29,6 @@ cas.server.prefix=${cas.server.name}/syncope-wa
cas.authn.syncope.url=${cas.server.name}/syncope
cas.authn.syncope.name=DefaultSyncopeAuthModule
-cas.authn.pm.core.enabled=true
-
service.discovery.address=https://localhost:9443/syncope-wa/
##
@@ -46,3 +44,4 @@
cas.tgc.crypto.encryption.key=mW6lMvsSo48eZ1Ntt74a-O9jjQQQ_OLUE24RVN2_A_sPX43mpB
cas.webflow.crypto.signing.key=Md6kkPlXx5L18TD0mFELpQXWnDbMffj-uPutPckMnAPPuJQEbfcLLYBnOynYIEDgnEpd7sxUwGYd8_sVYFMcjw
cas.webflow.crypto.encryption.key=FhLgLpaPL8GVNuqqo7gtiw
+management.endpoints.web.exposure.include=info,health,env,beans,loggers,ssoSessions,registeredServices,refresh,authenticationHandlers,authenticationPolicies,resolveAttributes
diff --git a/pom.xml b/pom.xml
index 567397693e..1f6f1332a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -449,7 +449,7 @@ under the License.
<disruptor.version>4.0.0</disruptor.version>
- <elasticsearch.version>9.3.0</elasticsearch.version>
+ <elasticsearch.version>9.3.1</elasticsearch.version>
<opensearch.version>3.5.0</opensearch.version>
<opensearch-java.version>3.6.0</opensearch-java.version>
@@ -897,25 +897,13 @@ under the License.
<dependency>
<groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway</artifactId>
+ <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
<version>${spring-cloud-gateway.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcpkix-jdk15on</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>4.3.1</version>
- <exclusions>
- <exclusion>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcpkix-jdk15on</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
diff --git a/sra/pom.xml b/sra/pom.xml
index 80310892b9..312df1ca2c 100644
--- a/sra/pom.xml
+++ b/sra/pom.xml
@@ -40,7 +40,7 @@ under the License.
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway</artifactId>
+ <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
</dependency>
<dependency>
diff --git
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/PasswordManagementPropertySourceMapper.java
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/PasswordManagementPropertySourceMapper.java
index d1dbbc5cd9..86677c3e97 100644
---
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/PasswordManagementPropertySourceMapper.java
+++
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/PasswordManagementPropertySourceMapper.java
@@ -53,6 +53,9 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
LOG.warn("Application context is not ready to bootstrap WA
configuration");
return Map.of();
}
+ if (!passwordManagementTO.isEnabled()) {
+ return Map.of();
+ }
SyncopePasswordManagementProperties props = new
SyncopePasswordManagementProperties();
props.setDomain(conf.getDomain());
@@ -62,9 +65,7 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
props.setSearchFilter(conf.getSearchFilter());
props.setHeaders(conf.getHeaders());
- Map<String, Object> mapped = prefix("cas.authn.pm.syncope.",
WAConfUtils.asMap(props));
- mapped.put("cas.authn.pm.syncope.enabled",
passwordManagementTO.isEnabled());
- return mapped;
+ return prefix("cas.authn.pm.syncope.", WAConfUtils.asMap(props));
}
@Override
@@ -72,6 +73,10 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
final PasswordManagementTO passwordManagementTO,
final LDAPPasswordManagementConf conf) {
+ if (!passwordManagementTO.isEnabled()) {
+ return Map.of();
+ }
+
LdapPasswordManagementProperties props = new
LdapPasswordManagementProperties();
props.setName(passwordManagementTO.getKey());
props.setType(AbstractLdapProperties.LdapType.valueOf(conf.getLdapType().name()));
@@ -79,9 +84,7 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
fill(props, conf);
- Map<String, Object> mapped = prefix("cas.authn.pm.ldap[].",
WAConfUtils.asMap(props));
- mapped.put("cas.authn.pm.ldap.enabled",
passwordManagementTO.isEnabled());
- return mapped;
+ return prefix("cas.authn.pm.ldap[].", WAConfUtils.asMap(props));
}
@Override
@@ -89,6 +92,10 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
final PasswordManagementTO passwordManagementTO,
final JDBCPasswordManagementConf conf) {
+ if (!passwordManagementTO.isEnabled()) {
+ return Map.of();
+ }
+
JdbcPasswordManagementProperties props = new
JdbcPasswordManagementProperties();
props.setSqlChangePassword(conf.getSqlChangePassword());
props.setSqlFindEmail(conf.getSqlFindEmail());
@@ -100,9 +107,7 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
props.setSqlUnlockAccount(conf.getSqlUnlockAccount());
fill(props, conf);
- Map<String, Object> mapped = prefix("cas.authn.pm.jdbc.",
WAConfUtils.asMap(props));
- mapped.put("cas.authn.pm.jdbc.enabled",
passwordManagementTO.isEnabled());
- return mapped;
+ return prefix("cas.authn.pm.jdbc.", WAConfUtils.asMap(props));
}
@Override
@@ -110,6 +115,10 @@ public class PasswordManagementPropertySourceMapper
extends PropertySourceMapper
final PasswordManagementTO passwordManagementTO,
final RESTPasswordManagementConf conf) {
+ if (!passwordManagementTO.isEnabled()) {
+ return Map.of();
+ }
+
RestfulPasswordManagementProperties props = new
RestfulPasswordManagementProperties();
props.setEndpointPassword(conf.getEndpointPassword());
props.setEndpointUrlAccountUnlock(conf.getEndpointUrlAccountUnlock());
@@ -124,8 +133,6 @@ public class PasswordManagementPropertySourceMapper extends
PropertySourceMapper
props.setFieldNameUser(conf.getFieldNameUser());
props.setHeaders(conf.getHeaders());
- Map<String, Object> mapped = prefix("cas.authn.pm.rest.",
WAConfUtils.asMap(props));
- mapped.put("cas.authn.pm.rest.enabled",
passwordManagementTO.isEnabled());
- return mapped;
+ return prefix("cas.authn.pm.rest.", WAConfUtils.asMap(props));
}
}
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
index f15398dff1..af93d084bd 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
@@ -483,19 +483,19 @@ public class WAContext {
@Qualifier("restPasswordChangeService")
final PasswordManagementService restPasswordManagementService) {
- if (ctx.getEnvironment().getProperty("cas.authn.pm.syncope.enabled",
Boolean.class, Boolean.FALSE)) {
+ if (!(syncopePasswordManagementService instanceof
NoOpPasswordManagementService)) {
return syncopePasswordManagementService;
}
- if (ctx.getEnvironment().getProperty("cas.authn.pm.ldap.enabled",
Boolean.class, Boolean.FALSE)) {
+ if (!(ldapPasswordManagementService instanceof
NoOpPasswordManagementService)) {
return ldapPasswordManagementService;
}
- if (ctx.getEnvironment().getProperty("cas.authn.pm.jdbc.enabled",
Boolean.class, Boolean.FALSE)) {
+ if (!(jdbcPasswordManagementService instanceof
NoOpPasswordManagementService)) {
return jdbcPasswordManagementService;
}
- if (ctx.getEnvironment().getProperty("cas.authn.pm.rest.enabled",
Boolean.class, Boolean.FALSE)) {
+ if (!(restPasswordManagementService instanceof
NoOpPasswordManagementService)) {
return restPasswordManagementService;
}
diff --git a/wa/starter/src/main/resources/wa.properties
b/wa/starter/src/main/resources/wa.properties
index 27d428b1c1..a66c191167 100644
--- a/wa/starter/src/main/resources/wa.properties
+++ b/wa/starter/src/main/resources/wa.properties
@@ -91,6 +91,8 @@ cas.authn.oauth.core.user-profile-view-type=FLAT
cas.authn.oauth.session-replication.replicate-sessions=false
cas.authn.pac4j.core.session-replication.replicate-sessions=false
+cas.authn.pm.core.enabled=true
+
# Disable access to the login endpoint
# if no target application is specified.
cas.sso.services.allow-missing-service-parameter=true