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

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

commit 4049ef1ad0c1624dd13c0cd7dd8a7b709342ef0e
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Wed Sep 2 09:49:09 2026 +0200

    Cleanup
---
 .../apache/syncope/client/console/pages/Logs.java  |  15 +-
 .../client/console/rest/LoggerConfRestClient.java  |  11 +-
 .../apache/syncope/core/logic/SRARouteLogic.java   |   5 +-
 .../syncope/core/logic/wa/WAConfigLogic.java       |   4 +-
 .../java/org/apache/syncope/sra/RouteProvider.java |  31 +-
 .../org/apache/syncope/sra/SecurityConfig.java     |  34 +-
 .../apache/syncope/sra/SyncopeSRAApplication.java  |   8 +-
 sra/src/test/resources/debug/sra-debug.properties  |   2 +
 src/site/xdoc/security.xml                         | 786 ---------------------
 .../apache/syncope/wa/bootstrap/WAProperties.java  |  10 +-
 .../syncope/wa/starter/SyncopeWAApplication.java   |   2 +-
 wa/starter/src/main/resources/wa.properties        |   2 +
 12 files changed, 59 insertions(+), 851 deletions(-)

diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Logs.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Logs.java
index 2f7cf5f62b..d9d96d21ac 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Logs.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Logs.java
@@ -29,9 +29,7 @@ import org.apache.syncope.client.console.panels.LogsPanel;
 import org.apache.syncope.client.console.rest.LoggerConf;
 import org.apache.syncope.client.console.rest.LoggerConfOp;
 import org.apache.syncope.client.console.rest.LoggerConfRestClient;
-import org.apache.syncope.common.keymaster.client.api.DomainOps;
 import org.apache.syncope.common.keymaster.client.api.ServiceOps;
-import org.apache.syncope.common.keymaster.client.api.model.Domain;
 import org.apache.syncope.common.keymaster.client.api.model.NetworkService;
 import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
 import org.apache.wicket.extensions.markup.html.tabs.ITab;
@@ -51,9 +49,6 @@ public class Logs extends BasePage {
     @SpringBean
     private ServiceOps serviceOps;
 
-    @SpringBean
-    private DomainOps domainOps;
-
     @SpringBean
     private LoggingSystem loggingSystem;
 
@@ -71,8 +66,6 @@ public class Logs extends BasePage {
     private List<ITab> buildTabList() {
         List<ITab> tabs = new ArrayList<>();
 
-        List<Domain> domains = domainOps.list();
-
         List<NetworkService> coreInstances = 
serviceOps.list(NetworkService.Type.CORE);
         tabs.add(new AbstractTab(Model.of(NetworkService.Type.CORE.name())) {
 
@@ -80,7 +73,7 @@ public class Logs extends BasePage {
 
             @Override
             public Panel getPanel(final String panelId) {
-                return new LogsPanel(panelId, new 
LoggerConfRestClient(coreInstances, domains), getPageReference());
+                return new LogsPanel(panelId, new 
LoggerConfRestClient(coreInstances), getPageReference());
             }
         });
 
@@ -125,7 +118,7 @@ public class Logs extends BasePage {
 
                 @Override
                 public Panel getPanel(final String panelId) {
-                    return new LogsPanel(panelId, new 
LoggerConfRestClient(euInstances, domains), getPageReference());
+                    return new LogsPanel(panelId, new 
LoggerConfRestClient(euInstances), getPageReference());
                 }
             });
         }
@@ -138,7 +131,7 @@ public class Logs extends BasePage {
 
                 @Override
                 public Panel getPanel(final String panelId) {
-                    return new LogsPanel(panelId, new 
LoggerConfRestClient(waInstances, domains), getPageReference());
+                    return new LogsPanel(panelId, new 
LoggerConfRestClient(waInstances), getPageReference());
                 }
             });
         }
@@ -151,7 +144,7 @@ public class Logs extends BasePage {
 
                 @Override
                 public Panel getPanel(final String panelId) {
-                    return new LogsPanel(panelId, new 
LoggerConfRestClient(sraInstances, domains), getPageReference());
+                    return new LogsPanel(panelId, new 
LoggerConfRestClient(sraInstances), getPageReference());
                 }
             });
         }
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/LoggerConfRestClient.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/LoggerConfRestClient.java
index 529265f284..2e8129c719 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/LoggerConfRestClient.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/LoggerConfRestClient.java
@@ -25,14 +25,10 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.syncope.client.console.SyncopeWebApplication;
 import org.apache.syncope.client.ui.commons.rest.RestClient;
-import org.apache.syncope.common.keymaster.client.api.model.Domain;
 import org.apache.syncope.common.keymaster.client.api.model.NetworkService;
-import org.apache.syncope.common.lib.SyncopeConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.logging.LogLevel;
@@ -49,13 +45,8 @@ public class LoggerConfRestClient implements RestClient, 
LoggerConfOp {
 
     private final List<NetworkService> instances;
 
-    private final List<String> domains;
-
-    public LoggerConfRestClient(final List<NetworkService> instances, final 
List<Domain> domains) {
+    public LoggerConfRestClient(final List<NetworkService> instances) {
         this.instances = instances;
-        this.domains = Stream.concat(
-                Stream.of(SyncopeConstants.MASTER_DOMAIN), 
domains.stream().map(Domain::getKey)).
-                collect(Collectors.toList());
     }
 
     protected String getActuatorEndpoint(final NetworkService instance) {
diff --git 
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/SRARouteLogic.java 
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/SRARouteLogic.java
index 419a11c88d..99dbdd118d 100644
--- 
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/SRARouteLogic.java
+++ 
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/SRARouteLogic.java
@@ -120,9 +120,10 @@ public class SRARouteLogic extends 
AbstractTransactionalLogic<SRARouteTO> {
                             POST(HttpRequest.BodyPublishers.noBody()).build(),
                     HttpResponse.BodyHandlers.discarding()).
                     thenAcceptAsync(response -> LOG.info(
-                    "Pushed to SRA instance {} with HTTP status: {}", 
sra.getAddress(), response.statusCode())));
+                            "Pushed to SRA instance {} with HTTP status: {}",
+                            sra.getAddress(), response.statusCode())));
         } catch (KeymasterException e) {
-            throw new NotFoundException("Could not find any WA instance", e);
+            throw new NotFoundException("Could not find any SRA instance", e);
         }
     }
 
diff --git 
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/WAConfigLogic.java
 
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/WAConfigLogic.java
index 66f663fde1..9426dc1ef7 100644
--- 
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/WAConfigLogic.java
+++ 
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/WAConfigLogic.java
@@ -100,7 +100,7 @@ public class WAConfigLogic extends 
AbstractTransactionalLogic<EntityTO> {
                         GET().build(),
                 HttpResponse.BodyHandlers.discarding()).
                 thenAcceptAsync(response -> LOG.info(
-                "Pushed to {} with HTTP status: {}", target, 
response.statusCode()));
+                        "Pushed to {} with HTTP status: {}", target, 
response.statusCode()));
     }
 
     protected void refresh(final HttpClient client, final String 
serviceAddress) {
@@ -112,7 +112,7 @@ public class WAConfigLogic extends 
AbstractTransactionalLogic<EntityTO> {
                         POST(HttpRequest.BodyPublishers.noBody()).build(),
                 HttpResponse.BodyHandlers.discarding()).
                 thenAcceptAsync(response -> LOG.info(
-                "Pushed to {} with HTTP status: {}", target, 
response.statusCode()));
+                        "Pushed to {} with HTTP status: {}", target, 
response.statusCode()));
     }
 
     @PreAuthorize("hasRole('" + AMEntitlement.WA_CONFIG_PUSH + "')")
diff --git a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java 
b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
index 272882502a..6443b015bc 100644
--- a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
+++ b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
@@ -143,21 +143,21 @@ public class RouteProvider {
                 String[] addRequestHeaderArgs = gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(AddRequestHeaderGatewayFilterFactory.class).
                         apply(c -> c.setName(addRequestHeaderArgs[0].trim()).
-                        setValue(addRequestHeaderArgs[1].trim()));
+                                setValue(addRequestHeaderArgs[1].trim()));
                 break;
 
             case ADD_REQUEST_PARAMETER:
                 String[] addRequestParameterArgs = 
gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(AddRequestParameterGatewayFilterFactory.class).
                         apply(c -> 
c.setName(addRequestParameterArgs[0].trim()).
-                        setValue(addRequestParameterArgs[1].trim()));
+                                setValue(addRequestParameterArgs[1].trim()));
                 break;
 
             case ADD_RESPONSE_HEADER:
                 String[] addResponseHeaderArgs = gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(AddResponseHeaderGatewayFilterFactory.class).
                         apply(c -> c.setName(addResponseHeaderArgs[0].trim()).
-                        setValue(addResponseHeaderArgs[1].trim()));
+                                setValue(addResponseHeaderArgs[1].trim()));
                 break;
 
             case DEDUPE_RESPONSE_HEADER:
@@ -195,7 +195,7 @@ public class RouteProvider {
                 String[] mapRequestHeaderArgs = gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(MapRequestHeaderGatewayFilterFactory.class).
                         apply(c -> 
c.setFromHeader(mapRequestHeaderArgs[0].trim()).
-                        setToHeader(mapRequestHeaderArgs[1].trim()));
+                                setToHeader(mapRequestHeaderArgs[1].trim()));
                 break;
 
             case PREFIX_PATH:
@@ -249,7 +249,7 @@ public class RouteProvider {
                 String[] rewritePathArgs = gwfilter.getArgs().split(",");
                 filter = ctx.getBean(RewritePathGatewayFilterFactory.class).
                         apply(c -> c.setRegexp(rewritePathArgs[0].trim()).
-                        setReplacement(rewritePathArgs[1].trim()));
+                                setReplacement(rewritePathArgs[1].trim()));
                 break;
 
             case REWRITE_LOCATION:
@@ -274,8 +274,8 @@ public class RouteProvider {
                 String[] rewriteResponseHeaderArgs = 
gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(RewriteResponseHeaderGatewayFilterFactory.class).
                         apply(c -> 
c.setReplacement(rewriteResponseHeaderArgs[2].trim()).
-                        setRegexp(rewriteResponseHeaderArgs[1].trim()).
-                        setName(rewriteResponseHeaderArgs[0].trim()));
+                                setRegexp(rewriteResponseHeaderArgs[1].trim()).
+                                setName(rewriteResponseHeaderArgs[0].trim()));
                 break;
 
             case RETRY:
@@ -309,14 +309,14 @@ public class RouteProvider {
                 String[] setRequestHeaderArgs = gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(SetRequestHeaderGatewayFilterFactory.class).
                         apply(c -> c.setName(setRequestHeaderArgs[0].trim()).
-                        setValue(setRequestHeaderArgs[1].trim()));
+                                setValue(setRequestHeaderArgs[1].trim()));
                 break;
 
             case SET_RESPONSE_HEADER:
                 String[] setResponseHeaderArgs = gwfilter.getArgs().split(",");
                 filter = 
ctx.getBean(SetResponseHeaderGatewayFilterFactory.class).
                         apply(c -> c.setName(setResponseHeaderArgs[0].trim()).
-                        setValue(setResponseHeaderArgs[1].trim()));
+                                setValue(setResponseHeaderArgs[1].trim()));
                 break;
 
             case SET_STATUS:
@@ -428,21 +428,21 @@ public class RouteProvider {
                 String[] betweenArgs = gwpredicate.getArgs().split(",");
                 predicate = ctx.getBean(BetweenRoutePredicateFactory.class).
                         applyAsync(c -> 
c.setDatetime1(ZonedDateTime.parse(betweenArgs[0].trim())).
-                        
setDatetime2(ZonedDateTime.parse(betweenArgs[1].trim())));
+                                
setDatetime2(ZonedDateTime.parse(betweenArgs[1].trim())));
                 break;
 
             case COOKIE:
                 String[] cookieArgs = gwpredicate.getArgs().split(",");
                 predicate = ctx.getBean(CookieRoutePredicateFactory.class).
                         applyAsync(c -> c.setName(cookieArgs[0].trim()).
-                        setRegexp(cookieArgs[1].trim()));
+                                setRegexp(cookieArgs[1].trim()));
                 break;
 
             case HEADER:
                 String[] headerArgs = gwpredicate.getArgs().split(",");
                 predicate = ctx.getBean(HeaderRoutePredicateFactory.class).
                         applyAsync(c -> c.setHeader(headerArgs[0].trim()).
-                        setRegexp(headerArgs[1].trim()));
+                                setRegexp(headerArgs[1].trim()));
                 break;
 
             case HOST:
@@ -454,8 +454,9 @@ public class RouteProvider {
             case METHOD:
                 String[] methodArgs = gwpredicate.getArgs().split(",");
                 predicate = ctx.getBean(MethodRoutePredicateFactory.class).
-                        applyAsync(c -> c.setMethods(
-                        Stream.of(methodArgs).map(arg -> 
HttpMethod.valueOf(arg.trim())).toArray(HttpMethod[]::new)));
+                        applyAsync(c -> c.setMethods(Stream.of(methodArgs).
+                                map(arg -> HttpMethod.valueOf(arg.trim())).
+                                toArray(HttpMethod[]::new)));
                 break;
 
             case PATH:
@@ -491,7 +492,7 @@ public class RouteProvider {
                 }
                 predicate = ctx.getBean(WeightRoutePredicateFactory.class).
                         applyAsync(c -> c.setGroup(weigthArgs[0].trim()).
-                        setWeight(weight.get()));
+                                setWeight(weight.get()));
                 break;
 
             case CUSTOM:
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 7fa2764910..663be849a3 100644
--- a/sra/src/main/java/org/apache/syncope/sra/SecurityConfig.java
+++ b/sra/src/main/java/org/apache/syncope/sra/SecurityConfig.java
@@ -88,25 +88,9 @@ public class SecurityConfig {
         Security.addProvider(new BouncyCastleProvider());
     }
 
-    @Bean
-    @Order(0)
-    @ConditionalOnProperty(prefix = SRAProperties.PREFIX, name = 
SRAProperties.AM_TYPE, havingValue = "SAML2")
-    public SecurityWebFilterChain saml2SecurityFilterChain(final 
ServerHttpSecurity http) {
-        ServerWebExchangeMatcher metadataMatcher =
-                ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, 
SAML2MetadataEndpoint.METADATA_URL);
-        http.securityMatcher(metadataMatcher);
-
-        http.authorizeExchange(customizer -> 
customizer.anyExchange().permitAll());
-
-        http.csrf(customizer -> customizer.
-                requireCsrfProtectionMatcher(new 
NegatedServerWebExchangeMatcher(metadataMatcher)));
-
-        return http.build();
-    }
-
     @ConditionalOnMissingBean
     @Bean
-    @Order(1)
+    @Order(0)
     public SecurityWebFilterChain actuatorSecurityFilterChain(final 
ServerHttpSecurity http) {
         ServerWebExchangeMatcher actuatorMatcher = 
EndpointRequest.toAnyEndpoint();
         http.securityMatcher(actuatorMatcher);
@@ -132,6 +116,22 @@ public class SecurityConfig {
         return new MapReactiveUserDetailsService(user);
     }
 
+    @Bean
+    @Order(1)
+    @ConditionalOnProperty(prefix = SRAProperties.PREFIX, name = 
SRAProperties.AM_TYPE, havingValue = "SAML2")
+    public SecurityWebFilterChain saml2SecurityFilterChain(final 
ServerHttpSecurity http) {
+        ServerWebExchangeMatcher metadataMatcher =
+                ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, 
SAML2MetadataEndpoint.METADATA_URL);
+        http.securityMatcher(metadataMatcher);
+
+        http.authorizeExchange(customizer -> 
customizer.anyExchange().permitAll());
+
+        http.csrf(customizer -> customizer.
+                requireCsrfProtectionMatcher(new 
NegatedServerWebExchangeMatcher(metadataMatcher)));
+
+        return http.build();
+    }
+
     @Bean
     @ConditionalOnProperty(prefix = SRAProperties.PREFIX, name = 
SRAProperties.AM_TYPE, havingValue = "OIDC")
     public ClientRegistration oidcClientRegistration(final SRAProperties 
props) {
diff --git 
a/sra/src/main/java/org/apache/syncope/sra/SyncopeSRAApplication.java 
b/sra/src/main/java/org/apache/syncope/sra/SyncopeSRAApplication.java
index 4b711f434c..bc0eac198d 100644
--- a/sra/src/main/java/org/apache/syncope/sra/SyncopeSRAApplication.java
+++ b/sra/src/main/java/org/apache/syncope/sra/SyncopeSRAApplication.java
@@ -69,9 +69,11 @@ public class SyncopeSRAApplication {
 
     @ConditionalOnMissingBean
     @Bean
-    public RouteProvider routeProvider(final ConfigurableApplicationContext 
ctx,
+    public RouteProvider routeProvider(
+            final ConfigurableApplicationContext ctx,
             final ServiceOps serviceOps,
             final SRAProperties props) {
+
         return new RouteProvider(
                 serviceOps,
                 ctx,
@@ -94,8 +96,10 @@ public class SyncopeSRAApplication {
 
     @ConditionalOnMissingBean
     @Bean
-    public SyncopeCoreHealthIndicator syncopeCoreHealthIndicator(final 
ServiceOps serviceOps,
+    public SyncopeCoreHealthIndicator syncopeCoreHealthIndicator(
+            final ServiceOps serviceOps,
             final SRAProperties props) {
+
         return new SyncopeCoreHealthIndicator(
                 serviceOps,
                 props.getAnonymousUser(),
diff --git a/sra/src/test/resources/debug/sra-debug.properties 
b/sra/src/test/resources/debug/sra-debug.properties
index a0429cdf39..47247d7930 100644
--- a/sra/src/test/resources/debug/sra-debug.properties
+++ b/sra/src/test/resources/debug/sra-debug.properties
@@ -18,6 +18,8 @@ 
keymaster.address=https://localhost:9443/syncope/rest/keymaster
 keymaster.username=${anonymousUser}
 keymaster.password=${anonymousKey}
 
+management.endpoints.web.exposure.include=info,health,env,beans,loggers,metrics,gateway,sraSessions
+
 #sra.am-type=OIDC
 #sra.oidc.configuration=https://localhost:9443/syncope-wa/oidc
 #sra.oidc.client-id=oidcTestClientId
diff --git a/src/site/xdoc/security.xml b/src/site/xdoc/security.xml
deleted file mode 100644
index edb143d2f1..0000000000
--- a/src/site/xdoc/security.xml
+++ /dev/null
@@ -1,786 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
--->
-<document xmlns="http://maven.apache.org/XDOC/2.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 
http://maven.apache.org/xsd/xdoc-2.0.xsd";>
-
-  <properties>
-    <title>Security Advisories</title>
-    <author email="[email protected]">Apache Syncope Documentation 
Team</author>
-  </properties>
-
-  <body>
-
-    <section name="Security Advisories">
-      <p>This page lists all security vulnerabilities fixed in released 
versions of Apache Syncope.</p>
-      <p>Please note that binary patches are never provided. If you need to 
apply a source code patch, use the
-        <a href="building.html">building instructions</a> or 
-        <a href="docs/getting-started.html#create-project">re-generate your 
Maven project</a> from published archetype.</p>
-
-      <p>If you want to report a vulnerability, please follow <a 
href="https://www.apache.org/security/";>the procedure</a>.</p>
-
-      <subsection name="CVE-2026-42797: Apache Syncope: JexlContextBuilder 
Information Disclosure">
-        <p>Exposure of Sensitive Information Through Data Queries 
vulnerability in Apache Syncope.</p>
-        <p>An administrator with adequate entitlements for Derived Schemas can 
create a malicious JEXL expression which allows any administrator with 
sufficient entitlements for User read to access User-related security-sensitive 
information.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1 through 4.1.0</li>
-            <li>4.0 through 4.0.5</li>
-            <li>3.0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.1 / 4.0.6 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.1</li>
-            <li>Release 4.0.6</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-42797";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-42782: Apache Syncope: Post-auth RCE via 
Groovy static">
-        <p>Improper Isolation or Compartmentalization vulnerability in Apache 
Syncope.</p>
-        <p>An administrator with adequate entitlements for Implementations can 
create a malicious Groovy class containing untrusted code reaching a 
non-sandboxed execution path via the class static initializer.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1 through 4.1.0</li>
-            <li>4.0 through 4.0.5</li>
-            <li>3.0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.1 / 4.0.6 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.1</li>
-            <li>Release 4.0.6</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-42782";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-23795: Apache Syncope: Console XXE on 
Keymaster parameters">
-        <p>Improper Restriction of XML External Entity Reference vulnerability 
in Apache Syncope Console.</p>
-        <p>An administrator with adequate entitlements to create or edit 
Keymaster parameters via Console can construct malicious XML text to launch an 
XXE attack, thereby causing sensitive data leakage occurs.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.0 through 4.0.3</li>
-            <li>3.0 through 3.0.15</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.0.4 / 3.0.16 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.0.4</li>
-            <li>Release 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-23795";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-23794: Apache Syncope: Reflected XSS on 
Enduser Login">
-        <p>Reflected XSS in Apache Syncope's Enduser Login page.</p>
-        <p>An attacker that tricks a legitimate user into clicking a malicious 
link and logging in to Syncope Enduser could steal that user's credentials.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.0 through 4.0.3</li>
-            <li>3.0 through 3.0.15</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.0.4 / 3.0.16 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.0.4</li>
-            <li>Release 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-23794";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2025-65998: Apache Syncope: Default AES key used 
for internal password encryption">
-        <p>Apache Syncope can be configured to store the user password values 
in the internal database with AES encryption, though this is not the default 
option.</p>
-
-        <p>When AES is configured, the default key value, hard-coded in the 
source code, is always used.
-          This allows a malicious attacker, once obtained access to the 
internal database content, to reconstruct the original cleartext password 
values.<br/>
-          This is not affecting encrypted plain attributes, whose values are 
also stored using AES encryption.</p>
-
-        <p>Users are recommended to upgrade to version 4.0.3 / 3.0.15, which 
fix this issue.</p>
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.0 through 4.0.2</li>
-            <li>3.0 through 3.0.14</li>
-            <li>2.1 through 2.1.14</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.0.3 / 3.0.15 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.0.3</li>
-            <li>Release 3.0.15</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2025-65998";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2025-57738: Apache Syncope: Remote Code Execution 
by delegated administrators">
-        <p>Apache Syncope offers the ability to extend / customize the base 
behavior on every deployment by allowing to provide custom implementations of a 
few Java interfaces; such implementations can be provided either as Java or 
Groovy classes, with the latter being particularly attractive as the machinery 
is set for runtime reload.
-          Such a feature has been available for a while, but recently it was 
discovered that a malicious administrator can inject Groovy code that can be 
executed remotely by a running Apache Syncope Core instance.
-          Users are recommended to upgrade to version 3.0.14 / 4.0.2, which 
fix this issue by forcing the Groovy code to run in a sandbox.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.0 through 4.0.1</li>
-            <li>3.0 through 3.0.13</li>
-            <li>2.1 through 2.1.14</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.0.2 / 3.0.14 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.0.2</li>
-            <li>Release 3.0.14</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2025-57738";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2024-45031: Apache Syncope: Stored XSS in Console 
and Enduser">
-        <p>When editing objects in the Syncope Console, incomplete HTML tags 
could be used to bypass HTML sanitization. This made it possible to inject 
stored XSS payloads which would trigger for other users during ordinary usage 
of the application.<br/>
-          XSS payloads could also be injected in Syncope Enduser when editing 
“Personal Information” or “User Requests”: such payloads would trigger for 
administrators in Syncope Console, thus enabling session hijacking.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>3.0 through 3.0.8</li>
-            <li>2.1 through 2.1.14</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 3.0.9, which fixes 
this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 3.0.9</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-45031";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2024-38503: HTML tags can be injected into Console 
or Enduser text fields">
-        <p>When editing a user, group or any object in the Syncope Console, 
HTML tags could be added to any text field and could lead to potential exploits.
-          The same vulnerability was found in the Syncope Enduser, when 
editing “Personal Information” or “User Requests”.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>3.0 through 3.0.7</li>
-            <li>2.1 through 2.1.14</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 3.0.8, which fixes 
this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 3.0.8</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-38503";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2020-11977: Remote Code Execution via Flowable 
workflow definition">
-        <p>When the Flowable extension is enabled, an administrator with 
workflow entitlements can use Shell Service Tasks to perform malicious 
operations, including but not limited
-          to file read, file write, and code execution.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Low</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.1.X releases prior to 2.1.7</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.1.X users should upgrade to 2.1.7</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 2.1.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11977";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2020-1961: Server-Side Template Injection on mail 
templates">
-        <p>Vulnerability to Server-Side Template Injection on Mail templates 
enabling attackers to inject arbitrary JEXL
-          expressions, leading to Remote Code Execution (RCE) was 
discovered.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.0.X releases prior to 2.0.15</li>
-            <li>2.1.X releases prior to 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.0.X users should upgrade to 2.0.15</li>
-            <li>2.1.X users should upgrade to 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 2.0.15</li>
-            <li>Release 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1961";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2020-1959: Multiple Remote Code Execution 
Vulnerabilities">        
-        <p>A Server-Side Template Injection was identified in Syncope enabling 
attackers to inject arbitrary Java EL
-          expressions, leading to an unauthenticated Remote Code Execution 
(RCE) vulnerability.
-          Apache Syncope uses Java Bean Validation (JSR 380) custom constraint 
validators. When building custom
-          constraint violation error messages, they support different types of 
interpolation, including Java EL
-          expressions.
-          Therefore, if an attacker can inject arbitrary data in the error 
message template being passed, they will be
-          able to run arbitrary Java code.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.1.X releases prior to 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.1.X users should upgrade to 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1959";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2019-17557: Enduser UI XSS">
-        <p>It was found that the EndUser UI login page reflects the 
successMessage parameters.
-          By this mean, a user accessing the Enduser UI could execute 
javascript code from URL query string.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Medium</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.0.X releases prior to 2.0.15</li>
-            <li>2.1.X releases prior to 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.0.X users should upgrade to 2.0.15</li>
-            <li>2.1.X users should upgrade to 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 2.0.15</li>
-            <li>Release 2.1.6</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17557";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2018-17186: XXE on BPMN definitions">
-        <p>An administrator with workflow definition entitlements can use DTD 
to perform malicious operations, including
-          but not limited to file read, file write, and code execution.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Medium</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>Releases prior to 2.0.11</li>
-            <li>Releases prior to 2.1.2</li>
-          </ul>
-        </p>
-        <p>The unsupported Releases 1.2.x may be also affected.</p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.0.X users should upgrade to 2.0.11</li>
-            <li>2.1.X users should upgrade to 2.1.2</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Mitigation</b>
-        </p>
-        <p>Do not assign workflow definition entitlements to any 
administrator.</p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 2.0.11</li>
-            <li>Release 2.1.2</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17186";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2018-17184: Stored XSS">
-        <p>A malicious user with enough administration entitlements can inject 
html-like elements containing JavaScript
-          statements into Connector names, Report names, AnyTypeClass keys and 
Policy descriptions.<br/>
-          When another user with enough administration entitlements edits one 
of the Entities above via Admin Console,
-          the injected JavaScript code is executed.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>Releases prior to 2.0.11</li>
-            <li>Releases prior to 2.1.2</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>2.0.X users should upgrade to 2.0.11</li>
-            <li>2.1.X users should upgrade to 2.1.2</li>
-          </ul>
-        </p>
-        
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 2.0.11</li>
-            <li>Release 2.1.2</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17184";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2018-1322: Information disclosure via FIQL and 
ORDER BY sorting">
-        <p>An administrator with user search entitlements can recover 
sensitive security values using the
-          <code>fiql</code> and <code>orderby</code> parameters.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Medium</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>Releases prior to 1.2.11</li>
-            <li>Releases prior to 2.0.8</li>
-          </ul>
-        </p>
-        <p>The unsupported Releases 1.0.x, 1.1.x may be also affected.</p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Syncope 1.2.x users should upgrade to 1.2.11</li>
-            <li>Syncope 2.0.x users should upgrade to 2.0.8</li>
-          </ul>
-        </p>
-        
-        <p>
-          <b>Mitigation</b>
-        </p>
-        <p>Do not assign user search entitlements to any administrator.</p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 1.2.11</li>
-            <li>Release 2.0.8</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1322";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2018-1321: Remote code execution by administrators 
with report and template entitlements">
-        <p>An administrator with report and template entitlements can use XSL 
Transformations (XSLT) to perform
-          malicious operations, including but not limited to file read, file 
write, and code execution.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Medium</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>Releases prior to 1.2.11</li>
-            <li>Releases prior to 2.0.8</li>
-          </ul>
-        </p>
-        <p>The unsupported Releases 1.0.x, 1.1.x may be also affected.</p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Syncope 1.2.x users should upgrade to 1.2.11</li>
-            <li>Syncope 2.0.x users should upgrade to 2.0.8</li>
-          </ul>
-        </p>
-        
-        <p>
-          <b>Mitigation</b>
-        </p>
-        <p>Do not assign report and template entitlements to any 
administrator.</p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 1.2.11</li>
-            <li>Release 2.0.8</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1321";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2014-3503: Insecure Random implementations used to 
generate passwords">
-        <p>A password is generated for a user in Apache Syncope under certain  
circumstances, when no existing password 
-          is found. However, the password generation code is relying on 
insecure Random implementations, which means 
-          that an attacker could attempt to guess a generated password.</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>Releases 1.1.0 to 1.1.7</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Revision <a 
href="http://svn.apache.org/viewvc?view=revision&amp;revision=r1596537";>1596537</a></li>
-            <li>Release 1.1.8</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3503";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2014-0111: Remote code execution by an 
authenticated administrator">       
-        <p>In the various places in which Apache Commons JEXL expressions are 
allowed (derived schema definition, 
-          user / group templates, connObjectLinks of resource mappings) a 
malicious administrator can inject Java code 
-          that can be executed remotely by the Java EE container running the 
Apache Syncope core.</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>Releases 1.0.0 to 1.0.8</li>
-            <li>Releases 1.1.0 to 1.1.6</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Revisions <a 
href="http://svn.apache.org/viewvc?view=revision&amp;revision=r1586349";>1586349</a>
 / <a 
href="http://svn.apache.org/viewvc?view=revision&amp;revision=r1586317";>1586317</a></li>
-            <li>Releases 1.0.9 / 1.1.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0111";>full CVE 
advisory</a>.</p>
-      </subsection>
-    </section>
-
-  </body>
-</document>
diff --git 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WAProperties.java 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WAProperties.java
index 5dec150a1a..9735b3e6ca 100644
--- 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WAProperties.java
+++ 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WAProperties.java
@@ -26,13 +26,13 @@ public class WAProperties extends SyncopeProperties {
 
     private static final long serialVersionUID = 7925827623055998239L;
 
-    private int contextRefreshDelay = 15;
+    private int contextRefreshDelaySeconds = 15;
 
-    public int getContextRefreshDelay() {
-        return contextRefreshDelay;
+    public int getContextRefreshDelaySeconds() {
+        return contextRefreshDelaySeconds;
     }
 
-    public void setContextRefreshDelay(final int contextRefreshDelay) {
-        this.contextRefreshDelay = contextRefreshDelay;
+    public void setContextRefreshDelaySeconds(final int 
contextRefreshDelaySeconds) {
+        this.contextRefreshDelaySeconds = contextRefreshDelaySeconds;
     }
 }
diff --git 
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/SyncopeWAApplication.java
 
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/SyncopeWAApplication.java
index 809ba33071..5aa2ca54a2 100644
--- 
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/SyncopeWAApplication.java
+++ 
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/SyncopeWAApplication.java
@@ -95,7 +95,7 @@ public class SyncopeWAApplication extends 
SpringBootServletInitializer {
 
         WAProperties waProperties = 
event.getApplicationContext().getBean(WAProperties.class);
         TaskScheduler scheduler = 
event.getApplicationContext().getBean(TaskScheduler.class);
-        Instant startAt = 
Instant.now().plusSeconds(waProperties.getContextRefreshDelay());
+        Instant startAt = 
Instant.now().plusSeconds(waProperties.getContextRefreshDelaySeconds());
         try {
             scheduler.schedule(job, startAt);
             LOG.info("Scheduled job to refresh application context @ [{}]", 
startAt);
diff --git a/wa/starter/src/main/resources/wa.properties 
b/wa/starter/src/main/resources/wa.properties
index d22b2fb564..21fc8b05f3 100644
--- a/wa/starter/src/main/resources/wa.properties
+++ b/wa/starter/src/main/resources/wa.properties
@@ -66,6 +66,8 @@ wa.anonymousKey=${anonymousKey}
 
 wa.useGZIPCompression=true
 
+wa.contextRefreshDelaySeconds=15
+
 # Conf directories
 conf.directory=${syncope.conf.dir}
 cas.standalone.configuration-directory=${syncope.conf.dir}

Reply via email to