#include "internal.h"
#include "exceptions.h"
+#include "binding/SecurityPolicy.h"
#include "binding/SecurityPolicyRule.h"
#include "saml2/core/Assertions.h"
namespace saml2 {
SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory BearerConfirmationRuleFactory;
+ SAML_DLLLOCAL PluginManager<SecurityPolicyRule,string,const DOMElement*>::Factory DelegationRestrictionRuleFactory;
}
};
conf.SecurityPolicyRuleManager.registerFactory(XMLSIGNING_POLICY_RULE, XMLSigningRuleFactory);
conf.SecurityPolicyRuleManager.registerFactory(SAML1BROWSERSSO_POLICY_RULE, saml1::BrowserSSORuleFactory);
conf.SecurityPolicyRuleManager.registerFactory(BEARER_POLICY_RULE, saml2::BearerConfirmationRuleFactory);
+ conf.SecurityPolicyRuleManager.registerFactory(DELEGATION_POLICY_RULE, saml2::DelegationRestrictionRuleFactory);
}
SecurityPolicy::IssuerMatchingPolicy SecurityPolicy::m_defaultMatching;
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)
{
- _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;