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());