#include "exceptions.h"
#include "saml1/core/Protocols.h"
+#include <xmltooling/validation/ValidatorSuite.h>
+
using namespace opensaml::saml1p;
using namespace opensaml::saml1;
using namespace opensaml;
using namespace xmltooling;
using namespace std;
+using samlconstants::SAML1P_NS;
namespace opensaml {
namespace saml1p {
BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Request);
XMLOBJECTVALIDATOR_REQUIRE(Request,RequestID);
XMLOBJECTVALIDATOR_REQUIRE(Request,IssueInstant);
- int count=0;
+ pair<bool,int> minor=ptr->getMinorVersion();
+ if (!minor.first)
+ throw ValidationException("Request must have MinorVersion");
+ int count=0;
if (ptr->getQuery()!=NULL)
count++;
if (!ptr->getAssertionIDReferences().empty())
XMLOBJECTVALIDATOR_REQUIRE(Response,ResponseID);
XMLOBJECTVALIDATOR_REQUIRE(Response,IssueInstant);
XMLOBJECTVALIDATOR_REQUIRE(Response,Status);
+ pair<bool,int> minor=ptr->getMinorVersion();
+ if (!minor.first)
+ throw ValidationException("Response must have MinorVersion");
END_XMLOBJECTVALIDATOR;
};
};
#define REGISTER_ELEMENT(cname) \
- q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
+ q=QName(SAML1P_NS,cname::LOCAL_NAME); \
XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
- Validator::registerValidator(q,new cname##SchemaValidator())
+ SchemaValidators.registerValidator(q,new cname##SchemaValidator())
#define REGISTER_TYPE(cname) \
- q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
+ q=QName(SAML1P_NS,cname::TYPE_NAME); \
XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
- Validator::registerValidator(q,new cname##SchemaValidator())
+ SchemaValidators.registerValidator(q,new cname##SchemaValidator())
#define REGISTER_ELEMENT_NOVAL(cname) \
- q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
+ q=QName(SAML1P_NS,cname::LOCAL_NAME); \
XMLObjectBuilder::registerBuilder(q,new cname##Builder());
#define REGISTER_TYPE_NOVAL(cname) \
- q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
+ q=QName(SAML1P_NS,cname::TYPE_NAME); \
XMLObjectBuilder::registerBuilder(q,new cname##Builder());
void opensaml::saml1p::registerProtocolClasses() {