Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .mvn/extensions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

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;
Expand Down Expand Up @@ -91,12 +92,29 @@
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;
Expand Down Expand Up @@ -522,44 +540,44 @@ public String getObject() {
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")));
Expand All @@ -574,76 +592,76 @@ public String getObject() {
"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",
Expand All @@ -656,9 +674,15 @@ public String getObject() {
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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
validityUntil=Validity Until
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
validityUntil=Validity Until
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
validityUntil=Validity Until
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
validityUntil=Validity Until
Original file line number Diff line number Diff line change
Expand Up @@ -107,3 +107,4 @@ userInfoEncryptedResponseAlg=UserInfo Encrypted Response Algorithm
userInfoEncryptedResponseEncoding=UserInfo Encrypted Response Encoding
evaluationOrder=Evaluation Order
idp=Identity Provider
validityUntil=Validity Until
Loading
Loading