Switch pointers to Unicode string objects.
authorScott Cantor <cantor.2@osu.edu>
Thu, 19 Mar 2009 01:29:46 +0000 (01:29 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 19 Mar 2009 01:29:46 +0000 (01:29 +0000)
saml/binding/SecurityPolicy.h
saml/binding/impl/SecurityPolicy.cpp
saml/profile/impl/AudienceRestrictionRule.cpp

index 6a5aac7..35bc4cf 100644 (file)
@@ -135,7 +135,7 @@ namespace opensaml {
          *
          * @return audience values of the peer processing the message
          */
-        const std::vector<const XMLCh*>& getAudiences() const {
+        const std::vector<xmltooling::xstring>& getAudiences() const {
             return m_audiences;
         }
 
@@ -144,7 +144,7 @@ namespace opensaml {
          *
          * @return audience values of the peer processing the message
          */
-        std::vector<const XMLCh*>& getAudiences() {
+        std::vector<xmltooling::xstring>& getAudiences() {
             return m_audiences;
         }
 
@@ -166,7 +166,7 @@ namespace opensaml {
          * @return correlated message identifier
          */
         const XMLCh* getCorrelationID() const {
-            return m_correlationID;
+            return m_correlationID.c_str();
         }
 
         /**
@@ -258,7 +258,9 @@ namespace opensaml {
          * @param correlationID correlated message identifier
          */
         void setCorrelationID(const XMLCh* correlationID) {
-            m_correlationID = correlationID;
+            m_correlationID.erase();
+            if (correlationID)
+                m_correlationID = correlationID;
         }
 
         /**
@@ -270,9 +272,7 @@ namespace opensaml {
          *
          * @throws BindingException raised if the message/request is invalid according to the supplied rules
          */
-        void evaluate(
-            const xmltooling::XMLObject& message, const xmltooling::GenericRequest* request=NULL
-            );
+        void evaluate(const xmltooling::XMLObject& message, const xmltooling::GenericRequest* request=NULL);
 
         /**
          * Resets the policy object and/or clears any per-message state.
@@ -300,7 +300,7 @@ namespace opensaml {
          * @return message identifier as determined by the registered policies
          */
         const XMLCh* getMessageID() const {
-            return m_messageID;
+            return m_messageID.c_str();
         }
 
         /**
@@ -345,8 +345,9 @@ namespace opensaml {
          * @param id message identifier
          */
         void setMessageID(const XMLCh* id) {
-            xercesc::XMLString::release(&m_messageID);
-            m_messageID = xercesc::XMLString::replicate(id);
+            m_messageID.erase();
+            if (id)
+                m_messageID = id;
         }
 
         /**
@@ -453,7 +454,7 @@ namespace opensaml {
 
     private:
         // information extracted from message
-        XMLCh* m_messageID;
+        xmltooling::xstring m_messageID;
         time_t m_issueInstant;
         saml2::Issuer* m_issuer;
         const saml2md::RoleDescriptor* m_issuerRole;
@@ -470,8 +471,8 @@ namespace opensaml {
 
         // contextual information
         mutable time_t m_ts;
-        const XMLCh* m_correlationID;
-        std::vector<const XMLCh*> m_audiences;
+        xmltooling::xstring m_correlationID;
+        std::vector<xmltooling::xstring> m_audiences;
     };
 
 };
index f4affe2..98875f7 100644 (file)
@@ -73,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),
@@ -84,8 +83,7 @@ SecurityPolicy::SecurityPolicy(
         m_trust(trustEngine),
         m_validate(validate),
         m_entityOnly(true),
-        m_ts(0),
-        m_correlationID(NULL)
+        m_ts(0)
 {
     if (role)
         m_role = new xmltooling::QName(*role);
@@ -93,7 +91,6 @@ SecurityPolicy::SecurityPolicy(
 
 SecurityPolicy::~SecurityPolicy()
 {
-    XMLString::release(&m_messageID);
     delete m_metadataCriteria;
     delete m_issuer;
 }
@@ -105,8 +102,7 @@ void SecurityPolicy::reset(bool messageOnly)
 
 void SecurityPolicy::_reset(bool messageOnly)
 {
-    XMLString::release(&m_messageID);
-    m_messageID=NULL;
+    m_messageID.erase();
     m_issueInstant=0;
     if (!messageOnly) {
         delete m_issuer;
index b579931..f87107e 100644 (file)
@@ -72,8 +72,8 @@ bool AudienceRestrictionRule::evaluate(const XMLObject& message, const GenericRe
     if (ac2) {
         const vector<saml2::Audience*>& auds2 = ac2->getAudiences();
         for (vector<saml2::Audience*>::const_iterator a1 = auds2.begin(); a1!=auds2.end(); ++a1) {
-            for (vector<const XMLCh*>::const_iterator a2 = policy.getAudiences().begin(); a2!=policy.getAudiences().end(); ++a2) {
-                if (XMLString::equals((*a1)->getAudienceURI(), *a2))
+            for (vector<xstring>::const_iterator a2 = policy.getAudiences().begin(); a2!=policy.getAudiences().end(); ++a2) {
+                if (XMLString::equals((*a1)->getAudienceURI(), a2->c_str()))
                     return true;
             }
             for (vector<const XMLCh*>::const_iterator a2 = m_audiences.begin(); a2!=m_audiences.end(); ++a2) {
@@ -94,8 +94,8 @@ bool AudienceRestrictionRule::evaluate(const XMLObject& message, const GenericRe
     if (ac1) {
         const vector<saml1::Audience*>& auds1 = ac1->getAudiences();
         for (vector<saml1::Audience*>::const_iterator a1 = auds1.begin(); a1!=auds1.end(); ++a1) {
-            for (vector<const XMLCh*>::const_iterator a2 = policy.getAudiences().begin(); a2!=policy.getAudiences().end(); ++a2) {
-                if (XMLString::equals((*a1)->getAudienceURI(), *a2))
+            for (vector<xstring>::const_iterator a2 = policy.getAudiences().begin(); a2!=policy.getAudiences().end(); ++a2) {
+                if (XMLString::equals((*a1)->getAudienceURI(), a2->c_str()))
                     return true;
             }
             for (vector<const XMLCh*>::const_iterator a2 = m_audiences.begin(); a2!=m_audiences.end(); ++a2) {