X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml1%2Fprofile%2FAssertionValidator.h;h=aa26c7966e309189c09803e816e21d4cf4d6c590;hp=68c29c4f96d0976521b27ae237a5cb597200d64d;hb=c3cd4ec3fa87d0ad3c6f65c1a5e15f548b1b6cc2;hpb=daf3f79d9624614fb13ca7f618c9fe5742392a3e diff --git a/saml/saml1/profile/AssertionValidator.h b/saml/saml1/profile/AssertionValidator.h index 68c29c4..aa26c79 100644 --- a/saml/saml1/profile/AssertionValidator.h +++ b/saml/saml1/profile/AssertionValidator.h @@ -1,6 +1,6 @@ /* * Copyright 2001-2007 Internet2 - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,7 +16,7 @@ /** * @file saml/saml1/profile/AssertionValidator.h - * + * * SAML 1.x basic assertion validator */ @@ -28,11 +28,12 @@ namespace opensaml { namespace saml1 { - + class SAML_API Assertion; class SAML_API Condition; - + /** + * @deprecated * SAML 1.x basic assertion validator provides time and audience condition checking. */ class SAML_API AssertionValidator : public virtual xmltooling::Validator @@ -40,18 +41,22 @@ namespace opensaml { public: /** * Constructor - * - * @param audiences set of audience values representing recipient + * + * @param recipient name of assertion recipient (implicit audience) + * @param audiences additional audience values * @param ts timestamp to evaluate assertion conditions, or 0 to bypass check */ - AssertionValidator(const std::vector& audiences, time_t ts=0) : m_ts(ts), m_audiences(audiences) {} + AssertionValidator(const XMLCh* recipient, const std::vector* audiences=NULL, time_t ts=0) + : m_recipient(recipient), m_audiences(audiences), m_ts(ts) { + } + virtual ~AssertionValidator() {} - + void validate(const xmltooling::XMLObject* xmlObject) const; /** * Type-safe validation method. - * + * * @param assertion assertion to validate */ virtual void validateAssertion(const Assertion& assertion) const; @@ -59,18 +64,25 @@ namespace opensaml { /** * Condition validation. * - *

Base class version only understands AudienceRestrictionConditions. - * + *

The base class version only understands AudienceRestrictionConditions. + * All other condition types will be rejected and require subclassing to + * prevent validation failure. + * * @param condition condition to validate - * @return true iff condition was understood */ - virtual bool validateCondition(const Condition* condition) const; + virtual void validateCondition(const Condition* condition) const; - private: + protected: + /** Name of recipient (implicit audience). */ + const XMLCh* m_recipient; + + /** Additional audience values. */ + const std::vector* m_audiences; + + /** Timestamp to evaluate assertion conditions. */ time_t m_ts; - const std::vector& m_audiences; }; - + }; };