X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fprofile%2Fimpl%2FBearerConfirmationRule.cpp;h=164913047b287015c4e865c870768130f67760f0;hb=f1208cd2f514700244816377443c4951dc22c848;hp=91a263203d90b5196b65966a5d01d6a553bfaf06;hpb=55c92398f169010549c3a667ec90817ac69b5b95;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/profile/impl/BearerConfirmationRule.cpp b/saml/saml2/profile/impl/BearerConfirmationRule.cpp index 91a2632..1649130 100644 --- a/saml/saml2/profile/impl/BearerConfirmationRule.cpp +++ b/saml/saml2/profile/impl/BearerConfirmationRule.cpp @@ -1,23 +1,27 @@ -/* - * Copyright 2009 Internet2 +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * UCAID licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the + * License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. */ /** * BearerConfirmationRule.cpp * - * SAML 2.0 Bearer SubjectConfirmation SecurityPolicyRule + * SAML 2.0 Bearer SubjectConfirmation SecurityPolicyRule. */ #include "internal.h" @@ -26,7 +30,9 @@ #include "saml2/core/Assertions.h" #include "saml2/profile/SAML2AssertionPolicy.h" +#include #include +#include #include using namespace opensaml::saml2; @@ -64,16 +70,12 @@ namespace opensaml { }; }; -BearerConfirmationRule::BearerConfirmationRule(const DOMElement* e) : m_validity(true), m_recipient(true), m_correlation(true), m_fatal(true) +BearerConfirmationRule::BearerConfirmationRule(const DOMElement* e) + : m_validity(XMLHelper::getAttrBool(e, true, checkValidity)), + m_recipient(XMLHelper::getAttrBool(e, true, checkRecipient)), + m_correlation(XMLHelper::getAttrBool(e, true, checkCorrelation)), + m_fatal(XMLHelper::getAttrBool(e, true, missingFatal)) { - const XMLCh* flag = e ? e->getAttributeNS(NULL, checkValidity) : NULL; - m_validity = (!flag || (*flag != chLatin_f && *flag != chDigit_0)); - flag = e ? e->getAttributeNS(NULL, checkRecipient) : NULL; - m_recipient = (!flag || (*flag != chLatin_f && *flag != chDigit_0)); - flag = e ? e->getAttributeNS(NULL, checkCorrelation) : NULL; - m_correlation = (!flag || (*flag != chLatin_f && *flag != chDigit_0)); - flag = e ? e->getAttributeNS(NULL, missingFatal) : NULL; - m_fatal = (!flag || (*flag != chLatin_f && *flag != chDigit_0)); } bool BearerConfirmationRule::evaluate(const XMLObject& message, const GenericRequest* request, opensaml::SecurityPolicy& policy) const @@ -98,7 +100,7 @@ bool BearerConfirmationRule::evaluate(const XMLObject& message, const GenericReq if (httpRequest && httpRequest->getRequestURL()) { string dest = httpRequest->getRequestURL(); auto_ptr_XMLCh destination(dest.substr(0,dest.find('?')).c_str()); - if (!XMLString::equals(destination.get(), data ? data->getRecipient() : NULL)) { + if (!XMLString::equals(destination.get(), data ? data->getRecipient() : nullptr)) { msg = "bearer confirmation failed with recipient mismatch"; continue; } @@ -106,7 +108,7 @@ bool BearerConfirmationRule::evaluate(const XMLObject& message, const GenericReq } if (m_correlation && policy.getCorrelationID() && *(policy.getCorrelationID())) { - if (!XMLString::equals(policy.getCorrelationID(), data ? data->getInResponseTo() : NULL)) { + if (!XMLString::equals(policy.getCorrelationID(), data ? data->getInResponseTo() : nullptr)) { msg = "bearer confirmation failed with request correlation mismatch"; continue; }