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


The following commit(s) were added to refs/heads/master by this push:
     new ecfdff4b64 Upgrading CAS
ecfdff4b64 is described below

commit ecfdff4b64e29951a39954e487d300276af8291b
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Jul 20 09:49:12 2026 +0200

    Upgrading CAS
---
 .../clientapps/ClientAppModalPanelBuilder.java     | 45 ++++++++++------------
 .../syncope/common/lib/to/OIDCRPClientAppTO.java   | 14 ++++++-
 .../persistence/api/entity/am/OIDCRPClientApp.java |  4 ++
 .../jpa/entity/am/JPAOIDCRPClientApp.java          | 13 +++++++
 .../neo4j/entity/am/Neo4jOIDCRPClientApp.java      | 16 +++++++-
 .../java/data/ClientAppDataBinderImpl.java         |  2 +
 pom.xml                                            | 18 +--------
 .../starter/mapping/OIDCRPClientAppTOMapper.java   |  1 +
 8 files changed, 69 insertions(+), 44 deletions(-)

diff --git 
a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
 
b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
index bc98659487..5bce3de26d 100644
--- 
a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
+++ 
b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
@@ -332,13 +332,15 @@ public class ClientAppModalPanelBuilder<T extends 
ClientAppTO> extends AbstractM
                     
clientSecret.setChoices(List.of(RandomStringUtils.secure().nextNumeric(15)));
                     fields.add(clientSecret);
 
-                    AjaxTextFieldPanel idTokenIssuer = new AjaxTextFieldPanel(
-                            "field", "idTokenIssuer", new 
PropertyModel<>(clientAppTO, "idTokenIssuer"), false);
-                    fields.add(idTokenIssuer);
+                    fields.add(new 
AjaxNumberFieldPanel.Builder<Long>().enableOnChange().build(
+                            "field", "clientSecretExpiration", Long.class,
+                            new PropertyModel<>(clientAppTO, 
"clientSecretExpiration")));
 
-                    AjaxCheckBoxPanel signIdToken = new AjaxCheckBoxPanel(
-                            "field", "signIdToken", new 
PropertyModel<>(clientAppTO, "signIdToken"));
-                    fields.add(signIdToken);
+                    fields.add(new AjaxTextFieldPanel(
+                            "field", "idTokenIssuer", new 
PropertyModel<>(clientAppTO, "idTokenIssuer"), false));
+
+                    fields.add(new AjaxCheckBoxPanel(
+                            "field", "signIdToken", new 
PropertyModel<>(clientAppTO, "signIdToken")));
                     AjaxDropDownChoicePanel<OIDCTokenSigningAlg> 
idTokenSigningAlg = new AjaxDropDownChoicePanel<>(
                             "field", "idTokenSigningAlg", new 
PropertyModel<>(clientAppTO, "idTokenSigningAlg"), false);
                     
idTokenSigningAlg.setChoices(List.of(OIDCTokenSigningAlg.values()));
@@ -483,37 +485,30 @@ public class ClientAppModalPanelBuilder<T extends 
ClientAppTO> extends AbstractM
                     
tokenEndpointAuthenticationMethod.setChoices(List.of(OIDCClientAuthenticationMethod.values()));
                     fields.add(tokenEndpointAuthenticationMethod);
 
-                    AjaxTextFieldPanel accessTokenMaxTimeToLive = new 
AjaxTextFieldPanel(
+                    fields.add(new AjaxTextFieldPanel(
                             "field", "accessTokenMaxTimeToLive",
-                            new PropertyModel<>(clientAppTO, 
"accessTokenMaxTimeToLive"), false);
-                    fields.add(accessTokenMaxTimeToLive);
+                            new PropertyModel<>(clientAppTO, 
"accessTokenMaxTimeToLive"), false));
 
-                    AjaxTextFieldPanel accessTokenTimeToKill = new 
AjaxTextFieldPanel(
+                    fields.add(new AjaxTextFieldPanel(
                             "field", "accessTokenTimeToKill", new 
PropertyModel<>(clientAppTO, "accessTokenTimeToKill"),
-                            false);
-                    fields.add(accessTokenTimeToKill);
+                            false));
 
-                    AjaxNumberFieldPanel<Long> accessTokenMaxActiveTokens = 
new AjaxNumberFieldPanel.Builder<Long>()
-                            .enableOnChange()
-                            .build("field", "accessTokenMaxActiveTokens", 
Long.class,
-                                    new PropertyModel<>(clientAppTO, 
"accessTokenMaxActiveTokens"));
-                    fields.add(accessTokenMaxActiveTokens);
+                    fields.add(new 
AjaxNumberFieldPanel.Builder<Long>().enableOnChange().
+                            build("field", "accessTokenMaxActiveTokens", 
Long.class,
+                                    new PropertyModel<>(clientAppTO, 
"accessTokenMaxActiveTokens")));
 
                     AjaxTextFieldPanel refreshTokenTimeToKill = new 
AjaxTextFieldPanel(
                             "field", "refreshTokenTimeToKill",
                             new PropertyModel<>(clientAppTO, 
"refreshTokenTimeToKill"), false);
                     fields.add(refreshTokenTimeToKill);
 
-                    AjaxNumberFieldPanel<Long> refreshTokenMaxActiveTokens = 
new AjaxNumberFieldPanel.Builder<Long>()
-                            .enableOnChange()
-                            .build("field", "refreshTokenMaxActiveTokens", 
Long.class,
-                                    new PropertyModel<>(clientAppTO, 
"refreshTokenMaxActiveTokens"));
-                    fields.add(refreshTokenMaxActiveTokens);
+                    fields.add(new 
AjaxNumberFieldPanel.Builder<Long>().enableOnChange().build(
+                            "field", "refreshTokenMaxActiveTokens", Long.class,
+                            new PropertyModel<>(clientAppTO, 
"refreshTokenMaxActiveTokens")));
 
-                    AjaxTextFieldPanel deviceTokenTimeToKill = new 
AjaxTextFieldPanel(
+                    fields.add(new AjaxTextFieldPanel(
                             "field", "deviceTokenTimeToKill", new 
PropertyModel<>(clientAppTO, "deviceTokenTimeToKill"),
-                            false);
-                    fields.add(deviceTokenTimeToKill);
+                            false));
                     break;
 
                 case SAML2SP:
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
index 44754e2687..a263b0e013 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
@@ -42,6 +42,8 @@ public class OIDCRPClientAppTO extends ClientAppTO {
 
     private String clientSecret;
 
+    private long clientSecretExpiration;
+
     private String idTokenIssuer;
 
     private boolean signIdToken = true;
@@ -101,7 +103,7 @@ public class OIDCRPClientAppTO extends ClientAppTO {
 
     @JsonProperty("_class")
     @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
-            example = "org.apache.syncope.common.lib.to.client.OIDCRPTO")
+            example = "org.apache.syncope.common.lib.to.OIDCRPClientAppTO")
     @Override
     public String getDiscriminator() {
         return getClass().getName();
@@ -123,6 +125,14 @@ public class OIDCRPClientAppTO extends ClientAppTO {
         this.clientSecret = clientSecret;
     }
 
+    public long getClientSecretExpiration() {
+        return clientSecretExpiration;
+    }
+
+    public void setClientSecretExpiration(final long clientSecretExpiration) {
+        this.clientSecretExpiration = clientSecretExpiration;
+    }
+
     public List<String> getRedirectUris() {
         return redirectUris;
     }
@@ -348,6 +358,7 @@ public class OIDCRPClientAppTO extends ClientAppTO {
                 .appendSuper(super.equals(obj))
                 .append(this.clientId, rhs.clientId)
                 .append(this.clientSecret, rhs.clientSecret)
+                .append(this.clientSecretExpiration, 
rhs.clientSecretExpiration)
                 .append(this.idTokenIssuer, rhs.idTokenIssuer)
                 .append(this.signIdToken, rhs.signIdToken)
                 .append(this.idTokenSigningAlg, rhs.idTokenSigningAlg)
@@ -385,6 +396,7 @@ public class OIDCRPClientAppTO extends ClientAppTO {
                 .appendSuper(super.hashCode())
                 .append(clientId)
                 .append(clientSecret)
+                .append(clientSecretExpiration)
                 .append(idTokenIssuer)
                 .append(signIdToken)
                 .append(idTokenSigningAlg)
diff --git 
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/OIDCRPClientApp.java
 
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/OIDCRPClientApp.java
index 0eb2dbda8d..90a32450b5 100644
--- 
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/OIDCRPClientApp.java
+++ 
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/OIDCRPClientApp.java
@@ -38,6 +38,10 @@ public interface OIDCRPClientApp extends ClientApp {
 
     String getClientSecret();
 
+    void setClientSecretExpiration(long clientSecretExpiration);
+
+    long getClientSecretExpiration();
+
     Set<String> getRedirectUris();
 
     Set<OIDCGrantType> getSupportedGrantTypes();
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
index 1dd719b5bd..fc9026ee87 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
@@ -26,6 +26,7 @@ import jakarta.persistence.Enumerated;
 import jakarta.persistence.Lob;
 import jakarta.persistence.Table;
 import java.util.HashSet;
+import java.util.Optional;
 import java.util.Set;
 import org.apache.syncope.common.lib.types.OIDCApplicationType;
 import org.apache.syncope.common.lib.types.OIDCClientAuthenticationMethod;
@@ -53,6 +54,8 @@ public class JPAOIDCRPClientApp extends AbstractClientApp 
implements OIDCRPClien
 
     private String clientSecret;
 
+    private Long clientSecretExpiration;
+
     private String idTokenIssuer;
 
     private boolean signIdToken = true;
@@ -152,6 +155,16 @@ public class JPAOIDCRPClientApp extends AbstractClientApp 
implements OIDCRPClien
         this.clientSecret = clientSecret;
     }
 
+    @Override
+    public long getClientSecretExpiration() {
+        return Optional.ofNullable(clientSecretExpiration).orElse(0L);
+    }
+
+    @Override
+    public void setClientSecretExpiration(final long clientSecretExpiration) {
+        this.clientSecretExpiration = clientSecretExpiration;
+    }
+
     @Override
     public String getIdTokenIssuer() {
         return idTokenIssuer;
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jOIDCRPClientApp.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jOIDCRPClientApp.java
index 54c6f47547..95f4cbdfc7 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jOIDCRPClientApp.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jOIDCRPClientApp.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.neo4j.entity.am;
 
 import jakarta.validation.constraints.NotNull;
 import java.util.HashSet;
+import java.util.Optional;
 import java.util.Set;
 import org.apache.syncope.common.lib.types.OIDCApplicationType;
 import org.apache.syncope.common.lib.types.OIDCClientAuthenticationMethod;
@@ -63,6 +64,8 @@ public class Neo4jOIDCRPClientApp extends AbstractClientApp 
implements OIDCRPCli
 
     private String clientSecret;
 
+    private Long clientSecretExpiration;
+
     private String idTokenIssuer;
 
     private boolean signIdToken = true;
@@ -119,7 +122,6 @@ public class Neo4jOIDCRPClientApp extends AbstractClientApp 
implements OIDCRPCli
 
     private String logoutUri;
 
-
     private String accessTokenMaxTimeToLive;
 
     private String accessTokenTimeToKill;
@@ -157,6 +159,16 @@ public class Neo4jOIDCRPClientApp extends 
AbstractClientApp implements OIDCRPCli
         this.clientSecret = clientSecret;
     }
 
+    @Override
+    public long getClientSecretExpiration() {
+        return Optional.ofNullable(clientSecretExpiration).orElse(0L);
+    }
+
+    @Override
+    public void setClientSecretExpiration(final long clientSecretExpiration) {
+        this.clientSecretExpiration = clientSecretExpiration;
+    }
+
     @Override
     public String getIdTokenIssuer() {
         return idTokenIssuer;
@@ -413,7 +425,7 @@ public class Neo4jOIDCRPClientApp extends AbstractClientApp 
implements OIDCRPCli
     public void setAccessTokenMaxTimeToLive(final String 
accessTokenMaxTimeToLive) {
         this.accessTokenMaxTimeToLive = accessTokenMaxTimeToLive;
     }
-    
+
     protected void json2list(final boolean clearFirst) {
         if (clearFirst) {
             getRedirectUris().clear();
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ClientAppDataBinderImpl.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ClientAppDataBinderImpl.java
index f5851bcb84..ff598c3ce4 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ClientAppDataBinderImpl.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ClientAppDataBinderImpl.java
@@ -300,6 +300,7 @@ public class ClientAppDataBinderImpl implements 
ClientAppDataBinder {
 
         clientApp.setClientId(clientAppTO.getClientId());
         clientApp.setClientSecret(clientAppTO.getClientSecret());
+        
clientApp.setClientSecretExpiration(clientAppTO.getClientSecretExpiration());
         clientApp.setIdTokenIssuer(clientAppTO.getIdTokenIssuer());
         clientApp.setSignIdToken(clientAppTO.isSignIdToken());
         clientApp.setIdTokenSigningAlg(clientAppTO.getIdTokenSigningAlg());
@@ -351,6 +352,7 @@ public class ClientAppDataBinderImpl implements 
ClientAppDataBinder {
 
         clientAppTO.setClientId(clientApp.getClientId());
         clientAppTO.setClientSecret(clientApp.getClientSecret());
+        
clientAppTO.setClientSecretExpiration(clientApp.getClientSecretExpiration());
         clientAppTO.setIdTokenIssuer(clientApp.getIdTokenIssuer());
         clientAppTO.setSignIdToken(clientApp.isSignIdToken());
         clientAppTO.setIdTokenSigningAlg(clientApp.getIdTokenSigningAlg());
diff --git a/pom.xml b/pom.xml
index 2ae150cbc6..49d9b8b536 100644
--- a/pom.xml
+++ b/pom.xml
@@ -466,7 +466,7 @@ under the License.
 
     <pac4j.version>6.5.4</pac4j.version>
 
-    <cas.version>8.0.0-RC6</cas.version>
+    <cas.version>8.0.0</cas.version>
     <cas-client.version>4.1.1</cas-client.version>
 
     <swagger-core.version>2.2.52</swagger-core.version>
@@ -1091,15 +1091,7 @@ under the License.
         <exclusions>
           <exclusion>
             <groupId>org.bouncycastle</groupId>
-            <artifactId>bcpkix-jdk15on</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk15on</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>findbugs-annotations</artifactId>
+            <artifactId>bcutil-jdk18on</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
@@ -1107,12 +1099,6 @@ under the License.
         <groupId>org.pac4j</groupId>
         <artifactId>pac4j-oidc</artifactId>
         <version>${pac4j.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>findbugs-annotations</artifactId>
-          </exclusion>          
-        </exclusions>
       </dependency>
       <!-- PAC4J -->
 
diff --git 
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/OIDCRPClientAppTOMapper.java
 
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/OIDCRPClientAppTOMapper.java
index b1bc7e656c..4e2c8824b3 100644
--- 
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/OIDCRPClientAppTOMapper.java
+++ 
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/OIDCRPClientAppTOMapper.java
@@ -73,6 +73,7 @@ public class OIDCRPClientAppTOMapper extends 
AbstractClientAppMapper {
 
         service.setClientId(rp.getClientId());
         service.setClientSecret(rp.getClientSecret());
+        service.setClientSecretExpiration(rp.getClientSecretExpiration());
 
         service.setIdTokenIssuer(rp.getIdTokenIssuer());
         service.setSignIdToken(rp.isSignIdToken());

Reply via email to