*
* @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;
}
*
* @return audience values of the peer processing the message
*/
- std::vector<const XMLCh*>& getAudiences() {
+ std::vector<xmltooling::xstring>& getAudiences() {
return m_audiences;
}
* @return correlated message identifier
*/
const XMLCh* getCorrelationID() const {
- return m_correlationID;
+ return m_correlationID.c_str();
}
/**
* @param correlationID correlated message identifier
*/
void setCorrelationID(const XMLCh* correlationID) {
- m_correlationID = correlationID;
+ m_correlationID.erase();
+ if (correlationID)
+ m_correlationID = correlationID;
}
/**
*
* @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.
* @return message identifier as determined by the registered policies
*/
const XMLCh* getMessageID() const {
- return m_messageID;
+ return m_messageID.c_str();
}
/**
* @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;
}
/**
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;
// 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;
};
};
const xmltooling::TrustEngine* trustEngine,
bool validate
) : m_metadataCriteria(NULL),
- m_messageID(NULL),
m_issueInstant(0),
m_issuer(NULL),
m_issuerRole(NULL),
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);
SecurityPolicy::~SecurityPolicy()
{
- XMLString::release(&m_messageID);
delete m_metadataCriteria;
delete m_issuer;
}
void SecurityPolicy::_reset(bool messageOnly)
{
- XMLString::release(&m_messageID);
- m_messageID=NULL;
+ m_messageID.erase();
m_issueInstant=0;
if (!messageOnly) {
delete m_issuer;
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) {
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) {