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

commit 2e007a7994d44658107523bfcdf216ee8a0a13e8
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 |   33 +-
 .../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                         | 1043 --------------------
 .../apache/syncope/wa/bootstrap/WAProperties.java  |   10 +-
 .../apache/syncope/wa/bootstrap/WARestClient.java  |    2 +-
 .../syncope/wa/starter/SyncopeWAApplication.java   |    2 +-
 wa/starter/src/main/resources/wa.properties        |    2 +
 13 files changed, 61 insertions(+), 1110 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 13ea6b41be..b2051b5571 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
@@ -27,14 +27,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 8d4e0da289..8918ba547b 100644
--- a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
+++ b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
@@ -138,21 +138,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:
@@ -190,7 +190,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:
@@ -244,7 +244,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:
@@ -269,8 +269,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:
@@ -304,14 +304,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:
@@ -423,21 +423,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:
@@ -449,8 +449,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:
@@ -477,7 +478,7 @@ public class RouteProvider {
 
             case WEIGHT:
                 String[] weigthArgs = gwpredicate.getArgs().split(",");
-                Mutable<Integer> weight = new MutableObject<Integer>();
+                Mutable<Integer> weight = new MutableObject<>();
                 try {
                     weight.setValue(Integer.valueOf(weigthArgs[1].trim()));
                 } catch (NumberFormatException e) {
@@ -486,7 +487,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 b8ade85df3..d0bfcc5c66 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 eecc6fcb7a..0000000000
--- a/src/site/xdoc/security.xml
+++ /dev/null
@@ -1,1043 +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-63071: Apache Syncope: RCE via Groovy Sandbox 
bypass">
-        <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 bypassing the Groovy 
security sandbox.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1.0-M0 through 4.1.1</li>
-            <li>4.0.0-M0 through 4.0.6</li>
-            <li>3.0.0-M0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.2 / 4.0.7 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.2</li>
-            <li>Release 4.0.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-63071";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-62418: Apache Syncope: Low-privileged 
authenticated SSRF in Connectors and Resources check">
-        <p>Low-privileged authenticated Server-Side Request Forgery (SSRF) 
vulnerability in Apache Syncope via Connectors and Resources check.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1.0-M0 through 4.1.1</li>
-            <li>4.0.0-M0 through 4.0.6</li>
-            <li>3.0.0-M0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.2 / 4.0.7 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.2</li>
-            <li>Release 4.0.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-62418";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-62183: Apache Syncope: User self-service 
privilege escalation">
-        <p>Improper Privilege Management vulnerability in Apache Syncope.</p>
-        <p>When:</p>
-        <ul>
-          <li>the all-Java user workflow adapter is configured, or</li>
-          <li>>the Flowable user workflow adapter is configured, bearing a 
BPMN definition not requiring admin approval for user self registration of self 
update requests</li>
-        </ul>
-        <p>the following scenario could happen.<br/>
-        A REST API call can allow the user to grant themselves one or more of 
defined Roles, thus gaining their Entitlements and becoming in fact an 
administrator; the actual Entitlements gained depend on the Roles that are 
effectively defined on the specific Syncope deployment.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1.0-M0 through 4.1.1</li>
-            <li>4.0.0-M0 through 4.0.6</li>
-            <li>3.0.0-M0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.2 / 4.0.7 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.2</li>
-            <li>Release 4.0.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-62183";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-57308: Apache Syncope: SQL injection 
vulnerability in Audit Events search">
-        <p>Improper Neutralization of Special Elements used in an SQL Command 
('SQL Injection') vulnerability in Apache Syncope.</p>
-        <p>An administrator with adequate entitlements can achieve execution 
of arbitrary SQL via stacked queries, leveraging unsanitized sort 
parameters.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>important</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1.0-M0 through 4.1.1</li>
-            <li>4.0.0-M0 through 4.0.6</li>
-            <li>3.0.0-M0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.2 / 4.0.7 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.2</li>
-            <li>Release 4.0.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-57308";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-53421: Apache Syncope: Remote Code Execution 
via Scripted Connector">
-        <p>Improper Isolation or Compartmentalization vulnerability in Apache 
Syncope.</p>
-        <p>An administrator with adequate entitlements can achieve remote code 
execution through the connector subsystem by relying on scripted connectors' 
(REST and SQL) capability to run Groovy scripts.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1.0-M0 through 4.1.1</li>
-            <li>4.0.0-M0 through 4.0.6</li>
-            <li>3.0.0-M0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.2 / 4.0.7 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.2</li>
-            <li>Release 4.0.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-53421";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <subsection name="CVE-2026-53405: Apache Syncope: Remote Code Execution 
via Flowable BPMN Groovy ScriptTask">
-        <p>Improper Isolation or Compartmentalization vulnerability in Apache 
Syncope.</p>
-        <p>An administrator with adequate entitlements can import arbitrary 
BPMN process definitions via the REST API and then start the process. When a 
BPMN process containing a Groovy scriptTask is imported and started, the Groovy 
script is executed directly on the server, with no sandbox.</p>
-
-        <p>
-          <b>Severity</b>
-        </p>
-        <p>Moderate</p>
-
-        <p>
-          <b>Affects</b>
-        </p>
-        <p>
-          <ul>
-            <li>4.1.0-M0 through 4.1.1</li>
-            <li>4.0.0-M0 through 4.0.6</li>
-            <li>3.0.0-M0 through 3.0.16</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Solution</b>
-        </p>
-        <p>
-          <ul>
-            <li>Users are recommended to upgrade to version 4.1.2 / 4.0.7 
which fix this issue.</li>
-          </ul>
-        </p>
-
-        <p>
-          <b>Fixed in</b>
-        </p>
-        <p>
-          <ul>
-            <li>Release 4.1.2</li>
-            <li>Release 4.0.7</li>
-          </ul>
-        </p>
-
-        <p>Read the <a 
href="https://www.cve.org/CVERecord?id=CVE-2026-53405";>full CVE 
advisory</a>.</p>
-      </subsection>
-
-      <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/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WARestClient.java 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WARestClient.java
index c4b1438bdb..5c44a9afac 100644
--- 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WARestClient.java
+++ 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/WARestClient.java
@@ -111,7 +111,7 @@ public class WARestClient {
     @SuppressWarnings("unchecked")
     public <T> T getService(final Class<T> serviceClass) {
         if (!isReady()) {
-            throw new IllegalStateException("Syncope core is not yet ready");
+            throw new IllegalStateException("Syncope Core is not yet ready");
         }
 
         T service;
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 c9ba3f06fc..2f857a3210 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
@@ -113,7 +113,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 6adbeefd1e..07b944de82 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