X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2FSAMLConfig.cpp;h=5efbb590f1ec1ff3ca54e370d2d9be00dfa8a743;hb=c6e08d702143f0337cd592d1599bd78d50c38873;hp=9315b01edc6687e8e64d9e4f56ff82bcbe877176;hpb=696ef7f05e796cddf6f662925cebcd7c6716707b;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/SAMLConfig.cpp b/saml/SAMLConfig.cpp index 9315b01..5efbb59 100644 --- a/saml/SAMLConfig.cpp +++ b/saml/SAMLConfig.cpp @@ -1,17 +1,21 @@ -/* - * Copyright 2001-2010 Internet2 - * - * 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 +/** + * 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. * - * http://www.apache.org/licenses/LICENSE-2.0 + * 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 * - * 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. + * 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. */ /** @@ -57,6 +61,10 @@ #include #include +#include +#include +#include + #include #include #include @@ -65,6 +73,8 @@ using namespace opensaml; using namespace xmlsignature; using namespace xmltooling::logging; using namespace xmltooling; +using namespace boost::lambda; +using namespace boost; using namespace std; // Expose entry points when used as an extension library @@ -110,6 +120,7 @@ SAMLConfig::SAMLConfig() : m_artifactMap(nullptr) SAMLConfig::~SAMLConfig() { + delete m_artifactMap; } ArtifactMap* SAMLConfig::getArtifactMap() const @@ -129,7 +140,6 @@ SAMLInternalConfig::SAMLInternalConfig() : m_initCount(0), m_lock(Mutex::create( SAMLInternalConfig::~SAMLInternalConfig() { - delete m_lock; } bool SAMLInternalConfig::init(bool initXMLTooling) @@ -230,8 +240,8 @@ void SAMLInternalConfig::generateRandomBytes(void* buf, unsigned int len) void SAMLInternalConfig::generateRandomBytes(std::string& buf, unsigned int len) { buf.erase(); - auto_ptr hold(new unsigned char[len]); - generateRandomBytes(hold.get(),len); + auto_arrayptr hold(new unsigned char[len]); + generateRandomBytes(const_cast(hold.get()), len); for (unsigned int i=0; i& roles=entity->getOrderedChildren(); - for (list::const_iterator child=roles.begin(); !role && child!=roles.end(); ++child) { - role=dynamic_cast(*child); - if (role && !role->isValid()) - role = nullptr; - } + const XMLObject* r = find_if( + entity->getOrderedChildren(), + (ll_dynamic_cast(_1) != ((const RoleDescriptor*)nullptr) && + lambda::bind(isValid, ll_dynamic_cast(_1), now)) + ); + if (r) + role = dynamic_cast(r); } + annotateException(e, role, status, rethrow); }