Switch pointers to Unicode string objects.
[shibboleth/cpp-opensaml.git] / saml / binding / impl / SecurityPolicy.cpp
index bae5447..98875f7 100644 (file)
@@ -40,6 +40,14 @@ namespace opensaml {
     SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory NullSecurityRuleFactory;
     SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory SimpleSigningRuleFactory;
     SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory XMLSigningRuleFactory;
+
+    namespace saml1 {
+        SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory BrowserSSORuleFactory;
+    }
+
+    namespace saml2 {
+        SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory BearerConfirmationRuleFactory;
+    }
 };
 
 void SAML_API opensaml::registerSecurityPolicyRules()
@@ -53,6 +61,8 @@ void SAML_API opensaml::registerSecurityPolicyRules()
     conf.SecurityPolicyRuleManager.registerFactory(NULLSECURITY_POLICY_RULE, NullSecurityRuleFactory);
     conf.SecurityPolicyRuleManager.registerFactory(SIMPLESIGNING_POLICY_RULE, SimpleSigningRuleFactory);
     conf.SecurityPolicyRuleManager.registerFactory(XMLSIGNING_POLICY_RULE, XMLSigningRuleFactory);
+    conf.SecurityPolicyRuleManager.registerFactory(SAML1BROWSERSSO_POLICY_RULE, saml1::BrowserSSORuleFactory);
+    conf.SecurityPolicyRuleManager.registerFactory(BEARER_POLICY_RULE, saml2::BearerConfirmationRuleFactory);
 }
 
 SecurityPolicy::IssuerMatchingPolicy SecurityPolicy::m_defaultMatching;
@@ -63,7 +73,6 @@ SecurityPolicy::SecurityPolicy(
     const xmltooling::TrustEngine* trustEngine,
     bool validate
     ) : m_metadataCriteria(NULL),
-        m_messageID(NULL),
         m_issueInstant(0),
         m_issuer(NULL),
         m_issuerRole(NULL),
@@ -82,20 +91,18 @@ SecurityPolicy::SecurityPolicy(
 
 SecurityPolicy::~SecurityPolicy()
 {
-    XMLString::release(&m_messageID);
     delete m_metadataCriteria;
     delete m_issuer;
 }
 
 void SecurityPolicy::reset(bool messageOnly)
 {
-    _reset();
+    _reset(messageOnly);
 }
 
 void SecurityPolicy::_reset(bool messageOnly)
 {
-    XMLString::release(&m_messageID);
-    m_messageID=NULL;
+    m_messageID.erase();
     m_issueInstant=0;
     if (!messageOnly) {
         delete m_issuer;