X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fbinding%2Fimpl%2FSecurityPolicy.cpp;h=d78e1df24d2a5a42edc9f10b60b77f85f0689ca1;hp=af93a86aea12606ada5aa2fa5c6abb3328882155;hb=c3cd4ec3fa87d0ad3c6f65c1a5e15f548b1b6cc2;hpb=1d5fda59e4996860bb2480ad52e29b2160d04725 diff --git a/saml/binding/impl/SecurityPolicy.cpp b/saml/binding/impl/SecurityPolicy.cpp index af93a86..d78e1df 100644 --- a/saml/binding/impl/SecurityPolicy.cpp +++ b/saml/binding/impl/SecurityPolicy.cpp @@ -32,7 +32,10 @@ using namespace xmltooling; using namespace std; namespace opensaml { + SAML_DLLLOCAL PluginManager::Factory AudienceRestrictionRuleFactory; SAML_DLLLOCAL PluginManager::Factory ClientCertAuthRuleFactory; + SAML_DLLLOCAL PluginManager::Factory ConditionsRuleFactory; + SAML_DLLLOCAL PluginManager::Factory IgnoreRuleFactory; SAML_DLLLOCAL PluginManager::Factory MessageFlowRuleFactory; SAML_DLLLOCAL PluginManager::Factory NullSecurityRuleFactory; SAML_DLLLOCAL PluginManager::Factory SimpleSigningRuleFactory; @@ -42,7 +45,10 @@ namespace opensaml { void SAML_API opensaml::registerSecurityPolicyRules() { SAMLConfig& conf=SAMLConfig::getConfig(); + conf.SecurityPolicyRuleManager.registerFactory(AUDIENCE_POLICY_RULE, AudienceRestrictionRuleFactory); conf.SecurityPolicyRuleManager.registerFactory(CLIENTCERTAUTH_POLICY_RULE, ClientCertAuthRuleFactory); + conf.SecurityPolicyRuleManager.registerFactory(CONDITIONS_POLICY_RULE, ConditionsRuleFactory); + conf.SecurityPolicyRuleManager.registerFactory(IGNORE_POLICY_RULE, IgnoreRuleFactory); conf.SecurityPolicyRuleManager.registerFactory(MESSAGEFLOW_POLICY_RULE, MessageFlowRuleFactory); conf.SecurityPolicyRuleManager.registerFactory(NULLSECURITY_POLICY_RULE, NullSecurityRuleFactory); conf.SecurityPolicyRuleManager.registerFactory(SIMPLESIGNING_POLICY_RULE, SimpleSigningRuleFactory); @@ -51,6 +57,30 @@ void SAML_API opensaml::registerSecurityPolicyRules() SecurityPolicy::IssuerMatchingPolicy SecurityPolicy::m_defaultMatching; +SecurityPolicy::SecurityPolicy( + const saml2md::MetadataProvider* metadataProvider, + const xmltooling::QName* role, + const xmltooling::TrustEngine* trustEngine, + bool validate + ) : m_metadataCriteria(NULL), + m_messageID(NULL), + m_issueInstant(0), + m_issuer(NULL), + m_issuerRole(NULL), + m_authenticated(false), + m_matchingPolicy(NULL), + m_metadata(metadataProvider), + m_role(NULL), + m_trust(trustEngine), + m_validate(validate), + m_entityOnly(true), + m_recipient(NULL), + m_ts(0) +{ + if (role) + m_role = new xmltooling::QName(*role); +} + SecurityPolicy::~SecurityPolicy() { XMLString::release(&m_messageID);