aboutsummaryrefslogtreecommitdiff
path: root/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java
diff options
context:
space:
mode:
authorBojan Suzic <bojan.suzic@iaik.tugraz.at>2014-03-20 12:34:59 +0100
committerBojan Suzic <bojan.suzic@iaik.tugraz.at>2014-03-20 12:34:59 +0100
commit72f9629c1c16bc0dacbc9aea45f15bd1af9e7f3f (patch)
tree92278f301341cddf96ef745ee7c1165841f09717 /id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java
parenteab3194053237391030f8c363ca072766e19faf9 (diff)
parentc54fd74a0ac1c03beb6870abf4710daddfd16a33 (diff)
downloadmoa-id-spss-72f9629c1c16bc0dacbc9aea45f15bd1af9e7f3f.tar.gz
moa-id-spss-72f9629c1c16bc0dacbc9aea45f15bd1af9e7f3f.tar.bz2
moa-id-spss-72f9629c1c16bc0dacbc9aea45f15bd1af9e7f3f.zip
Merge branch 'vidp' of gitlab.iaik.tugraz.at:afitzek/moa-idspss into vidp
Diffstat (limited to 'id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java')
-rw-r--r--id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/validator/CustomAttributeQueryValidator.java
new file mode 100644
index 000000000..c602ad38a
--- /dev/null
+++ b/id/server/stork2-saml-engine/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");
+ }
+
+}