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

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


The following commit(s) were added to refs/heads/4_1_X by this push:
     new b3124d424f [SYNCOPE-1955] Fixing OIDC JWKS retrieval
b3124d424f is described below

commit b3124d424f5e851571e3715b483334b7fbd8f446
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Mar 16 10:02:38 2026 +0100

    [SYNCOPE-1955] Fixing OIDC JWKS retrieval
---
 .../apache/syncope/client/console/panels/JWKSGenerationPanel.java   | 6 +++++-
 .../main/java/org/apache/syncope/client/console/panels/OIDC.java    | 6 ++++--
 .../syncope/wa/bootstrap/mapping/DefaultAttrReleaseMapper.java      | 4 ----
 .../apache/syncope/wa/starter/oidc/WAOIDCJWKSGeneratorService.java  | 4 ++--
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git 
a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/JWKSGenerationPanel.java
 
b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/JWKSGenerationPanel.java
index e59033a110..6388a7e249 100644
--- 
a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/JWKSGenerationPanel.java
+++ 
b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/JWKSGenerationPanel.java
@@ -78,8 +78,12 @@ public class JWKSGenerationPanel extends 
AbstractModalPanel<OIDCOpEntityTO> {
         try {
             jwksKeySizeM.setObject(Integer.valueOf(
                     
waConfigRestClient.get("cas.authn.oidc.jwks.core.jwks-key-size").getValues().getFirst()));
+        } catch (NumberFormatException e) {
+            LOG.error("Incorrect value for 
cas.authn.oidc.jwks.core.jwks-key-size, reverting to {}",
+                    jwksKeySizeM.getObject(), e);
         } catch (SyncopeClientException e) {
-            LOG.error("While reading cas.authn.oidc.jwks.core.jwks-key-size", 
e);
+            LOG.error("While reading cas.authn.oidc.jwks.core.jwks-key-size, 
reverting to {}",
+                    jwksKeySizeM.getObject(), e);
         }
         AjaxNumberFieldPanel<Integer> jwksKeySize = new 
AjaxNumberFieldPanel.Builder<Integer>().step(128).
                 build("jwksKeySize", "jwksKeySize", Integer.class, 
jwksKeySizeM);
diff --git 
a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
 
b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
index 6e62635f7d..58abcd5032 100644
--- 
a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
+++ 
b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
@@ -21,7 +21,8 @@ package org.apache.syncope.client.console.panels;
 import com.fasterxml.jackson.databind.json.JsonMapper;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import java.io.IOException;
-import java.util.Optional;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.client.console.rest.OIDCOpEntityRestClient;
@@ -107,7 +108,8 @@ public class OIDC extends Panel {
                                 
writeValueAsString(MAPPER.readTree(oidcOpEntity.get().getJWKS()));
                     } catch (IOException e) {
                         LOG.error("Could not pretty-print", e);
-                        pretty = 
Optional.ofNullable(oidcOpEntity.get()).map(OIDCOpEntityTO::getJWKS).orElse(null);
+                        pretty = new String(Base64.getDecoder().decode(
+                                oidcOpEntity.get().getJWKS()), 
StandardCharsets.UTF_8);
                     }
                 }
 
diff --git 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/DefaultAttrReleaseMapper.java
 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/DefaultAttrReleaseMapper.java
index 267b0bd060..66c62957c0 100644
--- 
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/DefaultAttrReleaseMapper.java
+++ 
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/DefaultAttrReleaseMapper.java
@@ -183,10 +183,6 @@ public class DefaultAttrReleaseMapper implements 
AttrReleaseMapper {
                     scope.name(), k -> attributeReleasePolicyCreator.get());
 
             policy.getClaimMappings().put(external, internal);
-
-            if (conf.getAllowedAttrs().contains(external)) {
-                policy.getAllowedAttributes().add(external);
-            }
         } else {
             warnMissingScope(clientApp.getName(), internal, external, 
scope.name());
         }
diff --git 
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/oidc/WAOIDCJWKSGeneratorService.java
 
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/oidc/WAOIDCJWKSGeneratorService.java
index b9bd2d5cc7..2c7985e4b4 100644
--- 
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/oidc/WAOIDCJWKSGeneratorService.java
+++ 
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/oidc/WAOIDCJWKSGeneratorService.java
@@ -19,7 +19,7 @@
 package org.apache.syncope.wa.starter.oidc;
 
 import jakarta.ws.rs.core.Response;
-import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import java.util.Optional;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.OIDCOpEntityTO;
@@ -101,7 +101,7 @@ public class WAOIDCJWKSGeneratorService implements 
OidcJsonWebKeystoreGeneratorS
             throw new IllegalStateException("Unable to determine OIDC OP");
         }
 
-        Resource result = new 
ByteArrayResource(oidcOpEntity.getJWKS().getBytes(StandardCharsets.UTF_8), 
"OIDC JWKS");
+        Resource result = new 
ByteArrayResource(Base64.getDecoder().decode(oidcOpEntity.getJWKS()), "OIDC 
JWKS");
         ClientInfo clientInfo = ClientInfoHolder.getClientInfo();
         applicationContext.publishEvent(new 
OidcJsonWebKeystoreGeneratedEvent(this, result, clientInfo));
         return result;

Reply via email to