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 249d6b6701 Upgrading CAS, Pac4j, Elasticsearch and Swagger UI (#1405)
249d6b6701 is described below
commit 249d6b670133a74ec0892197f0c83064bad94af0
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Jun 1 11:54:23 2026 +0200
Upgrading CAS, Pac4j, Elasticsearch and Swagger UI (#1405)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
---
.mvn/extensions.xml | 2 +-
.../clientapps/ClientAppModalPanelBuilder.java | 144 ++++++++++++---------
.../clientapps/ClientAppDirectoryPanel.properties | 1 +
.../ClientAppDirectoryPanel_fr_CA.properties | 1 +
.../ClientAppDirectoryPanel_it.properties | 1 +
.../ClientAppDirectoryPanel_ja.properties | 1 +
.../ClientAppDirectoryPanel_pt_BR.properties | 1 +
.../ClientAppDirectoryPanel_ru.properties | 1 +
.../syncope/common/lib/to/SAML2SPClientAppTO.java | 42 ++++--
.../api/entity/am/SAML2SPClientApp.java | 10 +-
.../jpa/entity/am/JPASAML2SPClientApp.java | 32 +++--
.../neo4j/entity/am/Neo4jSAML2SPClientApp.java | 28 ++--
.../java/data/ClientAppDataBinderImpl.java | 22 ++--
.../apache/syncope/fit/sra/OAUTH2SRAITCase.java | 2 +-
.../org/apache/syncope/fit/ui/OIDCC4UIITCase.java | 2 -
.../apache/syncope/fit/ui/SAML2SP4UIITCase.java | 2 -
pom.xml | 10 +-
.../syncope/wa/starter/config/WAContext.java | 10 +-
.../starter/mapping/SAML2SPClientAppTOMapper.java | 7 +-
.../wa/starter/multitenancy/WATenantsManager.java | 17 +++
20 files changed, 216 insertions(+), 120 deletions(-)
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
index 0fa026d33a..01a3142452 100644
--- a/.mvn/extensions.xml
+++ b/.mvn/extensions.xml
@@ -21,6 +21,6 @@ under the License.
<extension>
<groupId>org.apache.maven.extensions</groupId>
<artifactId>maven-build-cache-extension</artifactId>
- <version>1.2.2</version>
+ <version>1.2.3</version>
</extension>
</extensions>
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 480b9c5d50..bc98659487 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
@@ -20,6 +20,7 @@ package org.apache.syncope.client.console.clientapps;
import jakarta.ws.rs.core.MediaType;
import java.nio.charset.StandardCharsets;
+import java.time.Duration;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Comparator;
@@ -91,12 +92,29 @@ import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.validation.IValidatable;
+import org.apache.wicket.validation.IValidator;
+import org.apache.wicket.validation.ValidationError;
import org.apache.wicket.validation.validator.UrlValidator;
public class ClientAppModalPanelBuilder<T extends ClientAppTO> extends
AbstractModalPanelBuilder<T> {
private static final long serialVersionUID = 5945391813567245081L;
+ protected static class DurationValidator implements IValidator<String> {
+
+ private static final long serialVersionUID = 3978328825079032964L;
+
+ @Override
+ public void validate(final IValidatable<String> validatable) {
+ try {
+ Duration.parse(validatable.getValue());
+ } catch (Exception e) {
+ validatable.error(new ValidationError(this));
+ }
+ }
+ }
+
protected final IModel<Map<String, String>> accessPolicies = new
LoadableDetachableModel<>() {
private static final long serialVersionUID = -2012833443695917883L;
@@ -522,44 +540,44 @@ public class ClientAppModalPanelBuilder<T extends
ClientAppTO> extends AbstractM
new PropertyModel<>(clientAppTO,
"metadataSignatureLocation"), false));
AjaxDropDownChoicePanel<MetadataCriteriaDirection>
metadataCriteriaDirection =
- new AjaxDropDownChoicePanel<>(
- "field", "metadataCriteriaDirection",
- new PropertyModel<>(clientAppTO,
"metadataCriteriaDirection"),
- false);
+ new AjaxDropDownChoicePanel<>(
+ "field", "metadataCriteriaDirection",
+ new PropertyModel<>(clientAppTO,
"metadataCriteriaDirection"),
+ false);
metadataCriteriaDirection.setChoices(List.of(MetadataCriteriaDirection.values()));
fields.add(metadataCriteriaDirection);
fields.add(new AjaxTextFieldPanel(
- "field", "metadataCriteriaPattern",
- new PropertyModel<>(clientAppTO,
"metadataCriteriaPattern"), false));
+ "field", "metadataCriteriaPattern",
+ new PropertyModel<>(clientAppTO,
"metadataCriteriaPattern"), false));
fields.add(new AjaxTextFieldPanel(
- "field", "subjectLocality",
- new PropertyModel<>(clientAppTO, "subjectLocality"),
false));
+ "field", "subjectLocality",
+ new PropertyModel<>(clientAppTO,
"subjectLocality"), false));
AjaxDropDownChoicePanel<SigningCredentialType>
signingCredentialType =
- new AjaxDropDownChoicePanel<>(
- "field", "signingCredentialType",
- new PropertyModel<>(clientAppTO,
"signingCredentialType"),
- false);
+ new AjaxDropDownChoicePanel<>(
+ "field", "signingCredentialType",
+ new PropertyModel<>(clientAppTO,
"signingCredentialType"),
+ false);
signingCredentialType.setChoices(List.of(SigningCredentialType.values()));
fields.add(signingCredentialType);
AjaxDropDownChoicePanel<SAML2BindingType>
logoutResponseBinding =
- new AjaxDropDownChoicePanel<>(
- "field", "logoutResponseBinding",
- new PropertyModel<>(clientAppTO,
"logoutResponseBinding"),
- false);
+ new AjaxDropDownChoicePanel<>(
+ "field", "logoutResponseBinding",
+ new PropertyModel<>(clientAppTO,
"logoutResponseBinding"),
+ false);
logoutResponseBinding.setChoices(List.of(SAML2BindingType.values()));
fields.add(logoutResponseBinding);
fields.add(new AjaxCheckBoxPanel(
- "field", "logoutResponseEnabled",
- new PropertyModel<>(clientAppTO,
"logoutResponseEnabled")));
+ "field", "logoutResponseEnabled",
+ new PropertyModel<>(clientAppTO,
"logoutResponseEnabled")));
fields.add(new AjaxCheckBoxPanel(
- "field", "requireSignedRoot",
- new PropertyModel<>(clientAppTO,
"requireSignedRoot")));
+ "field", "requireSignedRoot",
+ new PropertyModel<>(clientAppTO,
"requireSignedRoot")));
fields.add(new AjaxCheckBoxPanel(
"field", "signAssertions", new
PropertyModel<>(clientAppTO, "signAssertions")));
@@ -574,76 +592,76 @@ public class ClientAppModalPanelBuilder<T extends
ClientAppTO> extends AbstractM
"field", "encryptAssertions", new
PropertyModel<>(clientAppTO, "encryptAssertions")));
fields.add(new AjaxCheckBoxPanel(
- "field", "encryptAttributes",
- new PropertyModel<>(clientAppTO,
"encryptAttributes")));
-
+ "field", "encryptAttributes",
+ new PropertyModel<>(clientAppTO,
"encryptAttributes")));
+
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingAssertionNameId",
- new PropertyModel<>(clientAppTO,
"skipGeneratingAssertionNameId")));
+ "field", "skipGeneratingAssertionNameId",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingAssertionNameId")));
fields.add(new AjaxCheckBoxPanel(
- "field",
"skipGeneratingSubjectConfirmationInResponseTo",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationInResponseTo")));
+ "field",
"skipGeneratingSubjectConfirmationInResponseTo",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationInResponseTo")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingResponseInResponseTo",
- new PropertyModel<>(clientAppTO,
"skipGeneratingResponseInResponseTo")));
+ "field", "skipGeneratingResponseInResponseTo",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingResponseInResponseTo")));
fields.add(new AjaxCheckBoxPanel(
- "field",
"skipGeneratingSubjectConfirmationNotOnOrAfter",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationNotOnOrAfter")));
+ "field",
"skipGeneratingSubjectConfirmationNotOnOrAfter",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationNotOnOrAfter")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingSubjectConfirmationRecipient",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationRecipient")));
+ "field",
"skipGeneratingSubjectConfirmationRecipient",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationRecipient")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingSubjectConfirmationRecipient",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationRecipient")));
+ "field",
"skipGeneratingSubjectConfirmationRecipient",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationRecipient")));
fields.add(new AjaxCheckBoxPanel(
- "field",
"skipGeneratingSubjectConfirmationAddress",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationAddress")));
+ "field",
"skipGeneratingSubjectConfirmationAddress",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationAddress")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingSubjectConfirmationNotBefore",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationNotBefore")));
+ "field",
"skipGeneratingSubjectConfirmationNotBefore",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationNotBefore")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingSubjectConfirmationNameId",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationNameId")));
+ "field", "skipGeneratingSubjectConfirmationNameId",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSubjectConfirmationNameId")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingNameIdQualifiers",
- new PropertyModel<>(clientAppTO,
"skipGeneratingNameIdQualifiers")));
+ "field", "skipGeneratingNameIdQualifiers",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingNameIdQualifiers")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingTransientNameId",
- new PropertyModel<>(clientAppTO,
"skipGeneratingTransientNameId")));
+ "field", "skipGeneratingTransientNameId",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingTransientNameId")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipValidatingAuthnRequest",
- new PropertyModel<>(clientAppTO,
"skipValidatingAuthnRequest")));
+ "field", "skipValidatingAuthnRequest",
+ new PropertyModel<>(clientAppTO,
"skipValidatingAuthnRequest")));
fields.add(new AjaxCheckBoxPanel(
- "field",
"skipGeneratingServiceProviderNameIdQualifier",
- new PropertyModel<>(clientAppTO,
"skipGeneratingServiceProviderNameIdQualifier")));
+ "field",
"skipGeneratingServiceProviderNameIdQualifier",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingServiceProviderNameIdQualifier")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingAuthenticatingAuthority",
- new PropertyModel<>(clientAppTO,
"skipGeneratingAuthenticatingAuthority")));
+ "field", "skipGeneratingAuthenticatingAuthority",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingAuthenticatingAuthority")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingNameIdQualifier",
- new PropertyModel<>(clientAppTO,
"skipGeneratingNameIdQualifier")));
+ "field", "skipGeneratingNameIdQualifier",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingNameIdQualifier")));
fields.add(new AjaxCheckBoxPanel(
- "field", "skipGeneratingSessionNotOnOrAfter",
- new PropertyModel<>(clientAppTO,
"skipGeneratingSessionNotOnOrAfter")));
+ "field", "skipGeneratingSessionNotOnOrAfter",
+ new PropertyModel<>(clientAppTO,
"skipGeneratingSessionNotOnOrAfter")));
fields.add(new AjaxCheckBoxPanel(
- "field", "validateMetadataCertificates",
- new PropertyModel<>(clientAppTO,
"validateMetadataCertificates")));
+ "field", "validateMetadataCertificates",
+ new PropertyModel<>(clientAppTO,
"validateMetadataCertificates")));
fields.add(new AjaxTextFieldPanel(
"field", "requiredAuthenticationContextClass",
@@ -656,9 +674,15 @@ public class ClientAppModalPanelBuilder<T extends
ClientAppTO> extends AbstractM
requiredNameIdFormat.addRequiredLabel().setEnabled(true);
fields.add(requiredNameIdFormat);
- fields.add(new
AjaxNumberFieldPanel.Builder<Integer>().min(0).build(
- "field", "skewAllowance", Integer.class,
- new PropertyModel<>(clientAppTO,
"skewAllowance")));
+ AjaxTextFieldPanel skewAllowance = new AjaxTextFieldPanel(
+ "field", "skewAllowance", new
PropertyModel<>(clientAppTO, "skewAllowance"), false);
+ skewAllowance.addValidator(new DurationValidator());
+ fields.add(skewAllowance);
+
+ AjaxTextFieldPanel validityUntil = new AjaxTextFieldPanel(
+ "field", "validityUntil", new
PropertyModel<>(clientAppTO, "validityUntil"), false);
+ validityUntil.addValidator(new DurationValidator());
+ fields.add(validityUntil);
fields.add(new AjaxTextFieldPanel(
"field", "nameIdQualifier", new
PropertyModel<>(clientAppTO, "nameIdQualifier"), false));
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.properties
index a8f51846ac..bdc0ffef1b 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.properties
@@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response
Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
+validityUntil=Validity Until
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_fr_CA.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_fr_CA.properties
index 2c3e428cdc..3d7316bf5b 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_fr_CA.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_fr_CA.properties
@@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response
Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
+validityUntil=Validity Until
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_it.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_it.properties
index d4123f56c6..96dcd2705c 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_it.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_it.properties
@@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=Algoritmo di cifratura
risposta UserInfo
userInfoEncryptedResponseEncoding=Codifica di cifratura risposta UserInfo
evaluationOrder=Ordine di valutazione
idp=Identity Provider
+validityUntil=Validit\u00e0
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ja.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ja.properties
index 06aa5f2737..fd95fba6ae 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ja.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ja.properties
@@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response
Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
+validityUntil=Validity Until
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_pt_BR.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_pt_BR.properties
index ceaecd955c..a1f4bdd85d 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_pt_BR.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_pt_BR.properties
@@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response
Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
+validityUntil=Validity Until
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ru.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ru.properties
index 1284cc9602..393ce1f407 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ru.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel_ru.properties
@@ -107,3 +107,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response
Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
+validityUntil=Validity Until
diff --git
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
index 2c3f63c230..87f2782d49 100644
---
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
+++
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
@@ -51,7 +51,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
private SigningCredentialType signingCredentialType;
- private SAML2BindingType logoutResponseBinding;
+ private SAML2BindingType logoutResponseBinding;
private boolean signAssertions;
@@ -103,7 +103,15 @@ public class SAML2SPClientAppTO extends ClientAppTO {
private SAML2SPNameId requiredNameIdFormat;
- private Integer skewAllowance;
+ /**
+ * This settings supports the java.time.Duration syntax.
+ */
+ private String skewAllowance;
+
+ /**
+ * This settings supports the java.time.Duration syntax.
+ */
+ private String validityUntil;
private String nameIdQualifier;
@@ -272,7 +280,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
}
public void setSkipGeneratingSubjectConfirmationInResponseTo(
- final boolean skipGeneratingSubjectConfirmationInResponseTo) {
+ final boolean skipGeneratingSubjectConfirmationInResponseTo) {
this.skipGeneratingSubjectConfirmationInResponseTo =
skipGeneratingSubjectConfirmationInResponseTo;
}
@@ -289,7 +297,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
}
public void setSkipGeneratingSubjectConfirmationNotOnOrAfter(
- final boolean skipGeneratingSubjectConfirmationNotOnOrAfter) {
+ final boolean skipGeneratingSubjectConfirmationNotOnOrAfter) {
this.skipGeneratingSubjectConfirmationNotOnOrAfter =
skipGeneratingSubjectConfirmationNotOnOrAfter;
}
@@ -298,7 +306,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
}
public void setSkipGeneratingSubjectConfirmationRecipient(
- final boolean skipGeneratingSubjectConfirmationRecipient) {
+ final boolean skipGeneratingSubjectConfirmationRecipient) {
this.skipGeneratingSubjectConfirmationRecipient =
skipGeneratingSubjectConfirmationRecipient;
}
@@ -315,7 +323,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
}
public void setSkipGeneratingSubjectConfirmationNotBefore(
- final boolean skipGeneratingSubjectConfirmationNotBefore) {
+ final boolean skipGeneratingSubjectConfirmationNotBefore) {
this.skipGeneratingSubjectConfirmationNotBefore =
skipGeneratingSubjectConfirmationNotBefore;
}
@@ -356,7 +364,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
}
public void setSkipGeneratingServiceProviderNameIdQualifier(
- final boolean skipGeneratingServiceProviderNameIdQualifier) {
+ final boolean skipGeneratingServiceProviderNameIdQualifier) {
this.skipGeneratingServiceProviderNameIdQualifier =
skipGeneratingServiceProviderNameIdQualifier;
}
@@ -408,14 +416,22 @@ public class SAML2SPClientAppTO extends ClientAppTO {
this.requiredNameIdFormat = requiredNameIdFormat;
}
- public Integer getSkewAllowance() {
+ public String getSkewAllowance() {
return skewAllowance;
}
- public void setSkewAllowance(final Integer skewAllowance) {
+ public void setSkewAllowance(final String skewAllowance) {
this.skewAllowance = skewAllowance;
}
+ public String getValidityUntil() {
+ return validityUntil;
+ }
+
+ public void setValidityUntil(final String validityUntil) {
+ this.validityUntil = validityUntil;
+ }
+
public String getNameIdQualifier() {
return nameIdQualifier;
}
@@ -490,10 +506,10 @@ public class SAML2SPClientAppTO extends ClientAppTO {
.append(this.encryptAttributes, rhs.encryptAttributes)
.append(this.skipGeneratingAssertionNameId,
rhs.skipGeneratingAssertionNameId)
.append(this.skipGeneratingSubjectConfirmationInResponseTo,
- rhs.skipGeneratingSubjectConfirmationInResponseTo)
+ rhs.skipGeneratingSubjectConfirmationInResponseTo)
.append(this.skipGeneratingResponseInResponseTo,
rhs.skipGeneratingResponseInResponseTo)
.append(this.skipGeneratingSubjectConfirmationNotOnOrAfter,
- rhs.skipGeneratingSubjectConfirmationNotOnOrAfter)
+ rhs.skipGeneratingSubjectConfirmationNotOnOrAfter)
.append(this.skipGeneratingSubjectConfirmationRecipient,
rhs.skipGeneratingSubjectConfirmationRecipient)
.append(this.skipGeneratingSubjectConfirmationAddress,
rhs.skipGeneratingSubjectConfirmationAddress)
.append(this.skipGeneratingSubjectConfirmationNotBefore,
rhs.skipGeneratingSubjectConfirmationNotBefore)
@@ -502,7 +518,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
.append(this.skipGeneratingTransientNameId,
rhs.skipGeneratingTransientNameId)
.append(this.skipValidatingAuthnRequest,
rhs.skipValidatingAuthnRequest)
.append(this.skipGeneratingServiceProviderNameIdQualifier,
- rhs.skipGeneratingServiceProviderNameIdQualifier)
+ rhs.skipGeneratingServiceProviderNameIdQualifier)
.append(this.skipGeneratingAuthenticatingAuthority,
rhs.skipGeneratingAuthenticatingAuthority)
.append(this.skipGeneratingNameIdQualifier,
rhs.skipGeneratingNameIdQualifier)
.append(this.skipGeneratingSessionNotOnOrAfter,
rhs.skipGeneratingSessionNotOnOrAfter)
@@ -511,6 +527,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
.append(this.requiredAuthenticationContextClass,
rhs.requiredAuthenticationContextClass)
.append(this.requiredNameIdFormat, rhs.requiredNameIdFormat)
.append(this.skewAllowance, rhs.skewAllowance)
+ .append(this.validityUntil, rhs.validityUntil)
.append(this.nameIdQualifier, rhs.nameIdQualifier)
.append(this.assertionAudiences, rhs.assertionAudiences)
.append(this.serviceProviderNameIdQualifier,
rhs.serviceProviderNameIdQualifier)
@@ -561,6 +578,7 @@ public class SAML2SPClientAppTO extends ClientAppTO {
.append(requiredAuthenticationContextClass)
.append(requiredNameIdFormat)
.append(skewAllowance)
+ .append(validityUntil)
.append(nameIdQualifier)
.append(assertionAudiences)
.append(serviceProviderNameIdQualifier)
diff --git
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/SAML2SPClientApp.java
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/SAML2SPClientApp.java
index 1cde400d76..5a9d879197 100644
---
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/SAML2SPClientApp.java
+++
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/SAML2SPClientApp.java
@@ -100,7 +100,7 @@ public interface SAML2SPClientApp extends ClientApp {
boolean isSkipGeneratingSubjectConfirmationInResponseTo();
void setSkipGeneratingSubjectConfirmationInResponseTo(boolean
skipGeneratingSubjectConfirmationInResponseTo);
-
+
boolean isSkipGeneratingResponseInResponseTo();
void setSkipGeneratingResponseInResponseTo(boolean
skipGeneratingResponseInResponseTo);
@@ -165,9 +165,13 @@ public interface SAML2SPClientApp extends ClientApp {
SAML2SPNameId getRequiredNameIdFormat();
- void setSkewAllowance(Integer location);
+ void setSkewAllowance(String skewAllowance);
+
+ String getSkewAllowance();
+
+ void setValidityUntil(String validityUntil);
- Integer getSkewAllowance();
+ String getValidityUntil();
void setNameIdQualifier(String location);
diff --git
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
index 3b3635204c..6de6d2622a 100644
---
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
+++
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
@@ -70,7 +70,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
private boolean encryptAttributes;
private boolean skipGeneratingAssertionNameId;
-
+
private boolean logoutResponseEnable;
@Column(name = "skipGeneSubjectConfInRespTo")
@@ -118,7 +118,9 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
private SAML2SPNameId requiredNameIdFormat;
- private Integer skewAllowance;
+ private String skewAllowance;
+
+ private String validityUntil;
private String nameIdQualifier;
@@ -262,7 +264,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
@Override
public void setSubjectLocality(final String subjectLocality) {
- this.subjectLocality = subjectLocality;
+ this.subjectLocality = subjectLocality;
}
@Override
@@ -352,7 +354,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
@Override
public void setSkipGeneratingSubjectConfirmationInResponseTo(
- final boolean skipGeneratingSubjectConfirmationInResponseTo) {
+ final boolean skipGeneratingSubjectConfirmationInResponseTo) {
this.skipGeneratingSubjectConfirmationInResponseTo =
skipGeneratingSubjectConfirmationInResponseTo;
}
@@ -373,7 +375,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
@Override
public void setSkipGeneratingSubjectConfirmationNotOnOrAfter(
- final boolean skipGeneratingSubjectConfirmationNotOnOrAfter) {
+ final boolean skipGeneratingSubjectConfirmationNotOnOrAfter) {
this.skipGeneratingSubjectConfirmationNotOnOrAfter =
skipGeneratingSubjectConfirmationNotOnOrAfter;
}
@@ -384,7 +386,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
@Override
public void setSkipGeneratingSubjectConfirmationRecipient(
- final boolean skipGeneratingSubjectConfirmationRecipient) {
+ final boolean skipGeneratingSubjectConfirmationRecipient) {
this.skipGeneratingSubjectConfirmationRecipient =
skipGeneratingSubjectConfirmationRecipient;
}
@@ -405,7 +407,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
@Override
public void setSkipGeneratingSubjectConfirmationNotBefore(
- final boolean skipGeneratingSubjectConfirmationNotBefore) {
+ final boolean skipGeneratingSubjectConfirmationNotBefore) {
this.skipGeneratingSubjectConfirmationNotBefore =
skipGeneratingSubjectConfirmationNotBefore;
}
@@ -456,7 +458,7 @@ public class JPASAML2SPClientApp extends AbstractClientApp
implements SAML2SPCli
@Override
public void setSkipGeneratingServiceProviderNameIdQualifier(
- final boolean skipGeneratingServiceProviderNameIdQualifier) {
+ final boolean skipGeneratingServiceProviderNameIdQualifier) {
this.skipGeneratingServiceProviderNameIdQualifier =
skipGeneratingServiceProviderNameIdQualifier;
}
@@ -521,15 +523,25 @@ public class JPASAML2SPClientApp extends
AbstractClientApp implements SAML2SPCli
}
@Override
- public Integer getSkewAllowance() {
+ public String getSkewAllowance() {
return skewAllowance;
}
@Override
- public void setSkewAllowance(final Integer skewAllowance) {
+ public void setSkewAllowance(final String skewAllowance) {
this.skewAllowance = skewAllowance;
}
+ @Override
+ public String getValidityUntil() {
+ return validityUntil;
+ }
+
+ @Override
+ public void setValidityUntil(final String validityUntil) {
+ this.validityUntil = validityUntil;
+ }
+
@Override
public String getNameIdQualifier() {
return nameIdQualifier;
diff --git
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jSAML2SPClientApp.java
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jSAML2SPClientApp.java
index 3f9c120455..dbc9fcbe2e 100644
---
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jSAML2SPClientApp.java
+++
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/am/Neo4jSAML2SPClientApp.java
@@ -113,7 +113,9 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
private SAML2SPNameId requiredNameIdFormat;
- private Integer skewAllowance;
+ private String skewAllowance;
+
+ private String validityUntil;
private String nameIdQualifier;
@@ -337,7 +339,7 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
@Override
public void setSkipGeneratingSubjectConfirmationInResponseTo(
- final boolean skipGeneratingSubjectConfirmationInResponseTo) {
+ final boolean skipGeneratingSubjectConfirmationInResponseTo) {
this.skipGeneratingSubjectConfirmationInResponseTo =
skipGeneratingSubjectConfirmationInResponseTo;
}
@@ -358,7 +360,7 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
@Override
public void setSkipGeneratingSubjectConfirmationNotOnOrAfter(
- final boolean skipGeneratingSubjectConfirmationNotOnOrAfter) {
+ final boolean skipGeneratingSubjectConfirmationNotOnOrAfter) {
this.skipGeneratingSubjectConfirmationNotOnOrAfter =
skipGeneratingSubjectConfirmationNotOnOrAfter;
}
@@ -369,7 +371,7 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
@Override
public void setSkipGeneratingSubjectConfirmationRecipient(
- final boolean skipGeneratingSubjectConfirmationRecipient) {
+ final boolean skipGeneratingSubjectConfirmationRecipient) {
this.skipGeneratingSubjectConfirmationRecipient =
skipGeneratingSubjectConfirmationRecipient;
}
@@ -390,7 +392,7 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
@Override
public void setSkipGeneratingSubjectConfirmationNotBefore(
- final boolean skipGeneratingSubjectConfirmationNotBefore) {
+ final boolean skipGeneratingSubjectConfirmationNotBefore) {
this.skipGeneratingSubjectConfirmationNotBefore =
skipGeneratingSubjectConfirmationNotBefore;
}
@@ -441,7 +443,7 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
@Override
public void setSkipGeneratingServiceProviderNameIdQualifier(
- final boolean skipGeneratingServiceProviderNameIdQualifier) {
+ final boolean skipGeneratingServiceProviderNameIdQualifier) {
this.skipGeneratingServiceProviderNameIdQualifier =
skipGeneratingServiceProviderNameIdQualifier;
}
@@ -506,15 +508,25 @@ public class Neo4jSAML2SPClientApp extends
AbstractClientApp implements SAML2SPC
}
@Override
- public Integer getSkewAllowance() {
+ public String getSkewAllowance() {
return skewAllowance;
}
@Override
- public void setSkewAllowance(final Integer skewAllowance) {
+ public void setSkewAllowance(final String skewAllowance) {
this.skewAllowance = skewAllowance;
}
+ @Override
+ public String getValidityUntil() {
+ return validityUntil;
+ }
+
+ @Override
+ public void setValidityUntil(final String validityUntil) {
+ this.validityUntil = validityUntil;
+ }
+
@Override
public String getNameIdQualifier() {
return nameIdQualifier;
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 753c6a4804..f5851bcb84 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
@@ -148,21 +148,21 @@ public class ClientAppDataBinderImpl implements
ClientAppDataBinder {
clientApp.setEncryptAttributes(clientAppTO.isEncryptAttributes());
clientApp.setSkipGeneratingAssertionNameId(clientAppTO.isSkipGeneratingAssertionNameId());
clientApp.setSkipGeneratingSubjectConfirmationInResponseTo(
- clientAppTO.isSkipGeneratingSubjectConfirmationInResponseTo());
+ clientAppTO.isSkipGeneratingSubjectConfirmationInResponseTo());
clientApp.setSkipGeneratingResponseInResponseTo(clientAppTO.isSkipGeneratingResponseInResponseTo());
clientApp.setSkipGeneratingSubjectConfirmationNotOnOrAfter(
- clientAppTO.isSkipGeneratingSubjectConfirmationNotOnOrAfter());
+ clientAppTO.isSkipGeneratingSubjectConfirmationNotOnOrAfter());
clientApp.setSkipGeneratingSubjectConfirmationRecipient(
- clientAppTO.isSkipGeneratingSubjectConfirmationRecipient());
+ clientAppTO.isSkipGeneratingSubjectConfirmationRecipient());
clientApp.setSkipGeneratingSubjectConfirmationAddress(clientAppTO.isSkipGeneratingSubjectConfirmationAddress());
clientApp.setSkipGeneratingSubjectConfirmationNotBefore(
- clientAppTO.isSkipGeneratingSubjectConfirmationNotBefore());
+ clientAppTO.isSkipGeneratingSubjectConfirmationNotBefore());
clientApp.setSkipGeneratingSubjectConfirmationNameId(clientAppTO.isSkipGeneratingSubjectConfirmationNameId());
clientApp.setSkipGeneratingNameIdQualifiers(clientAppTO.isSkipGeneratingNameIdQualifiers());
clientApp.setSkipGeneratingTransientNameId(clientAppTO.isSkipGeneratingTransientNameId());
clientApp.setSkipValidatingAuthnRequest(clientAppTO.isSkipValidatingAuthnRequest());
clientApp.setSkipGeneratingServiceProviderNameIdQualifier(
- clientAppTO.isSkipGeneratingServiceProviderNameIdQualifier());
+ clientAppTO.isSkipGeneratingServiceProviderNameIdQualifier());
clientApp.setSkipGeneratingAuthenticatingAuthority(clientAppTO.isSkipGeneratingAuthenticatingAuthority());
clientApp.setSkipGeneratingNameIdQualifier(clientAppTO.isSkipGeneratingNameIdQualifier());
clientApp.setSkipGeneratingSessionNotOnOrAfter(clientAppTO.isSkipGeneratingSessionNotOnOrAfter());
@@ -170,6 +170,7 @@ public class ClientAppDataBinderImpl implements
ClientAppDataBinder {
clientApp.setRequiredAuthenticationContextClass(clientAppTO.getRequiredAuthenticationContextClass());
clientApp.setRequiredNameIdFormat(clientAppTO.getRequiredNameIdFormat());
clientApp.setSkewAllowance(clientAppTO.getSkewAllowance());
+ clientApp.setValidityUntil(clientAppTO.getValidityUntil());
clientApp.setNameIdQualifier(clientAppTO.getNameIdQualifier());
clientApp.getAssertionAudiences().clear();
clientApp.getAssertionAudiences().addAll(clientAppTO.getAssertionAudiences());
@@ -244,21 +245,21 @@ public class ClientAppDataBinderImpl implements
ClientAppDataBinder {
clientAppTO.setEncryptAttributes(clientApp.isEncryptAttributes());
clientAppTO.setSkipGeneratingAssertionNameId(clientApp.isSkipGeneratingAssertionNameId());
clientAppTO.setSkipGeneratingSubjectConfirmationInResponseTo(
- clientApp.isSkipGeneratingSubjectConfirmationInResponseTo());
+ clientApp.isSkipGeneratingSubjectConfirmationInResponseTo());
clientAppTO.setSkipGeneratingResponseInResponseTo(clientApp.isSkipGeneratingResponseInResponseTo());
clientAppTO.setSkipGeneratingSubjectConfirmationNotOnOrAfter(
- clientApp.isSkipGeneratingSubjectConfirmationNotOnOrAfter());
+ clientApp.isSkipGeneratingSubjectConfirmationNotOnOrAfter());
clientAppTO.setSkipGeneratingSubjectConfirmationRecipient(
- clientApp.isSkipGeneratingSubjectConfirmationRecipient());
+ clientApp.isSkipGeneratingSubjectConfirmationRecipient());
clientAppTO.setSkipGeneratingSubjectConfirmationAddress(clientApp.isSkipGeneratingSubjectConfirmationAddress());
clientAppTO.setSkipGeneratingSubjectConfirmationNotBefore(
- clientApp.isSkipGeneratingSubjectConfirmationNotBefore());
+ clientApp.isSkipGeneratingSubjectConfirmationNotBefore());
clientAppTO.setSkipGeneratingSubjectConfirmationNameId(clientApp.isSkipGeneratingSubjectConfirmationNameId());
clientAppTO.setSkipGeneratingNameIdQualifiers(clientApp.isSkipGeneratingNameIdQualifiers());
clientAppTO.setSkipGeneratingTransientNameId(clientApp.isSkipGeneratingTransientNameId());
clientAppTO.setSkipValidatingAuthnRequest(clientApp.isSkipValidatingAuthnRequest());
clientAppTO.setSkipGeneratingServiceProviderNameIdQualifier(
- clientApp.isSkipGeneratingServiceProviderNameIdQualifier());
+ clientApp.isSkipGeneratingServiceProviderNameIdQualifier());
clientAppTO.setSkipGeneratingAuthenticatingAuthority(clientApp.isSkipGeneratingAuthenticatingAuthority());
clientAppTO.setSkipGeneratingNameIdQualifier(clientApp.isSkipGeneratingNameIdQualifier());
clientAppTO.setSkipGeneratingSessionNotOnOrAfter(clientApp.isSkipGeneratingSessionNotOnOrAfter());
@@ -266,6 +267,7 @@ public class ClientAppDataBinderImpl implements
ClientAppDataBinder {
clientAppTO.setRequiredAuthenticationContextClass(clientApp.getRequiredAuthenticationContextClass());
clientAppTO.setRequiredNameIdFormat(clientApp.getRequiredNameIdFormat());
clientAppTO.setSkewAllowance(clientApp.getSkewAllowance());
+ clientAppTO.setValidityUntil(clientApp.getValidityUntil());
clientAppTO.setNameIdQualifier(clientApp.getNameIdQualifier());
clientAppTO.getAssertionAudiences().addAll(clientApp.getAssertionAudiences());
clientAppTO.setServiceProviderNameIdQualifier(clientApp.getServiceProviderNameIdQualifier());
diff --git
a/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/OAUTH2SRAITCase.java
b/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/OAUTH2SRAITCase.java
index aa2689b0fe..cec0d75f6d 100644
---
a/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/OAUTH2SRAITCase.java
+++
b/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/OAUTH2SRAITCase.java
@@ -66,7 +66,7 @@ class OAUTH2SRAITCase extends AbstractOIDCITCase {
@Override
protected void checkLogout(final CloseableHttpResponse response) {
- assertEquals(HttpStatus.SC_NOT_FOUND,
response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SC_OK,
response.getStatusLine().getStatusCode());
}
@Override
diff --git
a/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/OIDCC4UIITCase.java
b/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/OIDCC4UIITCase.java
index 839a28ad8c..8a65494bb3 100644
---
a/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/OIDCC4UIITCase.java
+++
b/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/OIDCC4UIITCase.java
@@ -394,7 +394,6 @@ public class OIDCC4UIITCase extends AbstractUIITCase {
assertNotNull(passwordResetBody);
// check WA reset password screen
- assertTrue(passwordResetBody.contains("currentPassword"));
assertTrue(passwordResetBody.contains("password"));
assertTrue(passwordResetBody.contains("confirmedPassword"));
assertTrue(passwordResetBody.contains("execution"));
@@ -406,7 +405,6 @@ public class OIDCC4UIITCase extends AbstractUIITCase {
List<NameValuePair> form = new ArrayList<>();
form.add(new BasicNameValuePair("_eventId", "submit"));
form.add(new BasicNameValuePair("execution", execution));
- form.add(new BasicNameValuePair("currentPassword", password));
form.add(new BasicNameValuePair("password", newpassword));
form.add(new BasicNameValuePair("confirmedPassword", newpassword));
diff --git
a/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/SAML2SP4UIITCase.java
b/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/SAML2SP4UIITCase.java
index 708dc9ac12..cf2c64f21b 100644
---
a/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/SAML2SP4UIITCase.java
+++
b/fit/wa-reference/src/test/java/org/apache/syncope/fit/ui/SAML2SP4UIITCase.java
@@ -379,7 +379,6 @@ public class SAML2SP4UIITCase extends AbstractUIITCase {
responseBody = EntityUtils.toString(response.getEntity());
// check WA reset password screen
- assertTrue(responseBody.contains("currentPassword"));
assertTrue(responseBody.contains("password"));
assertTrue(responseBody.contains("confirmedPassword"));
assertTrue(responseBody.contains("execution"));
@@ -392,7 +391,6 @@ public class SAML2SP4UIITCase extends AbstractUIITCase {
List<NameValuePair> form = new ArrayList<>();
form.add(new BasicNameValuePair("_eventId", "submit"));
form.add(new BasicNameValuePair("execution", execution));
- form.add(new BasicNameValuePair("currentPassword", password));
form.add(new BasicNameValuePair("password", newpassword));
form.add(new BasicNameValuePair("confirmedPassword", newpassword));
diff --git a/pom.xml b/pom.xml
index 0a22458c93..1616751257 100644
--- a/pom.xml
+++ b/pom.xml
@@ -451,7 +451,7 @@ under the License.
<disruptor.version>4.0.0</disruptor.version>
- <elasticsearch.version>9.4.1</elasticsearch.version>
+ <elasticsearch.version>9.4.2</elasticsearch.version>
<opensearch.version>3.6.0</opensearch.version>
<opensearch-java.version>3.8.0</opensearch-java.version>
@@ -464,13 +464,13 @@ under the License.
<commons-text.version>1.15.0</commons-text.version>
<commons-codec.version>1.22.0</commons-codec.version>
- <pac4j.version>6.4.3</pac4j.version>
+ <pac4j.version>6.5.2</pac4j.version>
- <cas.version>8.0.0-RC4</cas.version>
+ <cas.version>8.0.0-RC5</cas.version>
<cas-client.version>4.1.1</cas-client.version>
<swagger-core.version>2.2.50</swagger-core.version>
- <swagger-ui.version>5.32.5</swagger-ui.version>
+ <swagger-ui.version>5.32.6</swagger-ui.version>
<jquery-slimscroll.version>1.3.8</jquery-slimscroll.version>
<jquery-cookie.version>1.4.1-1</jquery-cookie.version>
@@ -485,7 +485,7 @@ under the License.
<chartjs.version>4.4.3</chartjs.version>
<wicket.version>10.9.1</wicket.version>
- <wicketstuff.version>10.9.1</wicketstuff.version>
+ <wicketstuff.version>10.9.2</wicketstuff.version>
<wicket-bootstrap.version>7.0.14</wicket-bootstrap.version>
<wicket-spring-boot.version>5.0.0</wicket-spring-boot.version>
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
index 8516f74915..abb4ae129d 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
@@ -83,7 +83,7 @@ import
org.apereo.cas.configuration.CasConfigurationProperties;
import
org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties;
import
org.apereo.cas.configuration.model.support.pm.PasswordManagementProperties;
import org.apereo.cas.configuration.support.JpaBeans;
-import org.apereo.cas.consent.ConsentRepository;
+import org.apereo.cas.consent.ConsentRepositoryBuilder;
import org.apereo.cas.gauth.CasGoogleAuthenticator;
import
org.apereo.cas.gauth.credential.LdapGoogleAuthenticatorTokenCredentialRepository;
import org.apereo.cas.multitenancy.TenantsManager;
@@ -111,6 +111,7 @@ import
org.apereo.cas.trusted.authentication.api.MultifactorAuthenticationTrustS
import org.apereo.cas.util.LdapUtils;
import org.apereo.cas.util.crypto.CipherExecutor;
import org.apereo.cas.util.spring.CasApplicationReadyListener;
+import org.apereo.cas.util.spring.beans.BeanSupplier;
import org.apereo.cas.webauthn.storage.WebAuthnCredentialRepository;
import org.ldaptive.ConnectionFactory;
import org.pac4j.core.client.Client;
@@ -572,8 +573,11 @@ public class WAContext {
@RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
@Bean
- public ConsentRepository consentRepository(final WARestClient
waRestClient) {
- return new WAConsentRepository(waRestClient);
+ public ConsentRepositoryBuilder waConsentRepositoryBuilder(final
WARestClient waRestClient) {
+ return BeanSupplier.of(ConsentRepositoryBuilder.class).
+ supply(() -> () -> new WAConsentRepository(waRestClient)).
+ otherwiseProxy().
+ get();
}
@Bean
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/SAML2SPClientAppTOMapper.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/SAML2SPClientAppTOMapper.java
index 2a8a1636a8..a93e48352a 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/SAML2SPClientAppTOMapper.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/mapping/SAML2SPClientAppTOMapper.java
@@ -72,11 +72,11 @@ public class SAML2SPClientAppTOMapper extends
AbstractClientAppMapper {
service.setEncryptAssertions(sp.isEncryptAssertions());
service.setSubjectLocality(sp.getSubjectLocality());
service.setLogoutResponseBinding(
-
Optional.ofNullable(sp.getLogoutResponseBinding()).map(Enum::name).orElse(null));
+
Optional.ofNullable(sp.getLogoutResponseBinding()).map(Enum::name).orElse(null));
service.setMetadataCriteriaDirection(sp.getMetadataCriteriaDirection().name());
service.setMetadataCriteriaPattern(sp.getMetadataCriteriaPattern());
service.setSigningCredentialType(
-
Optional.ofNullable(sp.getSigningCredentialType()).map(Enum::name).orElse(null));
+
Optional.ofNullable(sp.getSigningCredentialType()).map(Enum::name).orElse(null));
service.setEncryptAttributes(sp.isEncryptAttributes());
service.setRequireSignedRoot(sp.isRequireSignedRoot());
service.setLogoutResponseEnabled(sp.isLogoutResponseEnabled());
@@ -98,7 +98,8 @@ public class SAML2SPClientAppTOMapper extends
AbstractClientAppMapper {
service.setValidateMetadataCertificates(sp.isValidateMetadataCertificates());
service.setRequiredAuthenticationContextClass(sp.getRequiredAuthenticationContextClass());
service.setRequiredNameIdFormat(sp.getRequiredNameIdFormat().getNameId());
-
service.setSkewAllowance(Optional.ofNullable(sp.getSkewAllowance()).orElse(0));
+
service.setSkewAllowance(Optional.ofNullable(sp.getSkewAllowance()).orElse(null));
+
service.setValidityUntil(Optional.ofNullable(sp.getValidityUntil()).orElse(null));
service.setNameIdQualifier(sp.getNameIdQualifier());
if (!sp.getAssertionAudiences().isEmpty()) {
service.setAssertionAudiences(String.join(",",
sp.getAssertionAudiences()));
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/multitenancy/WATenantsManager.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/multitenancy/WATenantsManager.java
index ac68ea3b5c..b400b9dc6d 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/multitenancy/WATenantsManager.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/multitenancy/WATenantsManager.java
@@ -123,4 +123,21 @@ public class WATenantsManager implements TenantsManager {
domainOps.list().forEach(domain ->
findTenant(domain.getKey()).ifPresent(tenants::add));
return tenants;
}
+
+ @Override
+ public TenantDefinition save(final TenantDefinition tenantDefinition) {
+ // Syncope Domains are managed by Core
+ return tenantDefinition;
+ }
+
+ @Override
+ public boolean delete(final String tenantId) {
+ // Syncope Domains are managed by Core
+ return false;
+ }
+
+ @Override
+ public void load() {
+ // nothing to do
+ }
}