diff options
author | Bojan Suzic <bojan.suzic@iaik.tugraz.at> | 2014-03-17 18:24:11 +0100 |
---|---|---|
committer | Bojan Suzic <bojan.suzic@iaik.tugraz.at> | 2014-03-17 18:24:11 +0100 |
commit | 3dbd5a679a3d695d43729916e2196d2b50b128cf (patch) | |
tree | 52467dfe2223b4ca9a30d5e042ddd1ba16177705 /id/server/SamlEngine-VIDP/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java | |
parent | 0b3249e37b26e029c576127654dca31bff4a5a63 (diff) | |
download | moa-id-spss-3dbd5a679a3d695d43729916e2196d2b50b128cf.tar.gz moa-id-spss-3dbd5a679a3d695d43729916e2196d2b50b128cf.tar.bz2 moa-id-spss-3dbd5a679a3d695d43729916e2196d2b50b128cf.zip |
adding samlengine 1.4.0
Diffstat (limited to 'id/server/SamlEngine-VIDP/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java')
-rw-r--r-- | id/server/SamlEngine-VIDP/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/id/server/SamlEngine-VIDP/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java b/id/server/SamlEngine-VIDP/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java new file mode 100644 index 000000000..c602ad38a --- /dev/null +++ b/id/server/SamlEngine-VIDP/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java @@ -0,0 +1,69 @@ +package eu.stork.peps.auth.engine.core.validator; + +import org.opensaml.xml.util.DatatypeHelper; +import org.opensaml.xml.validation.ValidationException; +import org.opensaml.xml.validation.Validator; + +import eu.stork.peps.auth.engine.core.CustomAttributeQuery; + +public class CustomAttributeQueryValidator implements Validator<CustomAttributeQuery> { + + /** + * Validate action. + * + * @param attrQuery the attribute query to validate + * + * @throws ValidationException the validation exception + */ + public final void validate(final CustomAttributeQuery attrQuery) throws ValidationException { + validateAssertion(attrQuery); + validateSubject(attrQuery); + validateDestination(attrQuery); + } + + + /** + * Validate assertion. + * + * @param attrQuery the attribute query + * + * @throws ValidationException the validation exception + */ + protected final void validateAssertion(final CustomAttributeQuery attrQuery) + throws ValidationException { + if (DatatypeHelper.isEmpty(attrQuery.getAssertionConsumerServiceURL())) { + throw new ValidationException("Consumer Service URL must be specified."); + } + } + + /** + * Validate subject + * @param query the attribute query to validate + * @throws ValidationException the validation exception + */ + protected void validateSubject(CustomAttributeQuery query) throws ValidationException { + if (query.getSubject() == null) + throw new ValidationException("Subject is required"); + } + + /** + * Validate the destination + * @param query the query to validate + * @throws ValidationException the validation exception + */ + protected void validateDestination(CustomAttributeQuery query) throws ValidationException { + if (query.getDestination() == null) + throw new ValidationException("Destination is required"); + } + + /** + * Validate the destination + * @param query the query to validate + * @throws ValidationException the validation exception + */ + protected void validateTime(CustomAttributeQuery query) throws ValidationException { + if (query.getIssueInstant().isAfterNow()) + throw new ValidationException("Issue time is in the futue"); + } + +} |