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

Reply via email to