diff options
author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2014-03-20 11:43:22 +0100 |
---|---|---|
committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2014-03-20 11:48:44 +0100 |
commit | e6144cfe09bb148638911660eeb492fee7ab8079 (patch) | |
tree | 99046bf1100b922eae9265efcb0ca1065bba1638 /id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/MultipleAssertionResponseValidator.java | |
parent | 2b076809c0a021d13cac226a5b648af9577f5ab4 (diff) | |
download | moa-id-spss-e6144cfe09bb148638911660eeb492fee7ab8079.tar.gz moa-id-spss-e6144cfe09bb148638911660eeb492fee7ab8079.tar.bz2 moa-id-spss-e6144cfe09bb148638911660eeb492fee7ab8079.zip |
fixed serializable issues in stork2-commons
Diffstat (limited to 'id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/MultipleAssertionResponseValidator.java')
-rw-r--r-- | id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/MultipleAssertionResponseValidator.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/MultipleAssertionResponseValidator.java b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/MultipleAssertionResponseValidator.java new file mode 100644 index 000000000..72639c8ee --- /dev/null +++ b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/MultipleAssertionResponseValidator.java @@ -0,0 +1,80 @@ +package eu.stork.peps.auth.engine.core.validator; + +import org.opensaml.saml2.core.Response; +import org.opensaml.xml.validation.ValidationException; +import org.opensaml.xml.validation.Validator; + + +public class MultipleAssertionResponseValidator implements Validator<Response> { + + /** + * Validate action. + * + * @param response the response to validate + * + * @throws ValidationException the validation exception + */ + public final void validate(final Response response) throws ValidationException { + validateAssertion(response); + validateConsent(response); + validateDestination(response); + validateTime(response); + validateId(response); + } + + + /** + * Validate assertion. + * + * @param response the attribute query + * + * @throws ValidationException the validation exception + */ + protected final void validateAssertion(final Response response) + throws ValidationException { + if (response.getAssertions() == null || response.getAssertions().size() < 2) { + throw new ValidationException("Multiple assertions must be specified."); + } + } + + /** + * Validate the Consent + * @param response the response to validate + * @throws ValidationException the validation exception + */ + protected void validateConsent(Response response) throws ValidationException { + if (response.getConsent() == null) + throw new ValidationException("Consent is required"); + } + + /** + * Validate the destination + * @param response the response to validate + * @throws ValidationException the validation exception + */ + protected void validateDestination(Response response) throws ValidationException { + if (response.getDestination() == null) + throw new ValidationException("Destination is required"); + } + + /** + * Validate issue times + * @param response the response to validate + * @throws ValidationException the validation exception + */ + protected void validateTime(Response response) throws ValidationException { + if (response.getIssueInstant().isAfterNow()) + throw new ValidationException("Issue time is in the futue"); + } + + /** + * Validate ids + * @param response the response to validate + * @throws ValidationException the validation exception + */ + protected void validateId(Response response) throws ValidationException { + if (response.getID() == null || response.getInResponseTo() == null) + throw new ValidationException("Id and response id is required"); + } + +} |