1 /** 2 * Licensed to the University Corporation for Advanced Internet 3 * Development, Inc. (UCAID) under one or more contributor license 4 * agreements. See the NOTICE file distributed with this work for 5 * additional information regarding copyright ownership. 6 * 7 * UCAID licenses this file to you under the Apache License, 8 * Version 2.0 (the "License"); you may not use this file except 9 * in compliance with the License. You may obtain a copy of the 10 * License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 17 * either express or implied. See the License for the specific 18 * language governing permissions and limitations under the License. 19 */ 20 21 /** 22 * @file saml/saml2/metadata/MetadataCredentialCriteria.h 23 * 24 * Metadata-based CredentialCriteria subclass. 25 */ 26 27 #ifndef __saml_metacrit_h__ 28 #define __saml_metacrit_h__ 29 30 #include <saml/base.h> 31 #include <xmltooling/security/CredentialCriteria.h> 32 33 namespace opensaml { 34 namespace saml2md { 35 36 /** 37 * Metadata-based CredentialCriteria subclass. 38 */ 39 class SAML_API MetadataCredentialCriteria : public xmltooling::CredentialCriteria 40 { 41 public: 42 /** 43 * Constructor. 44 * 45 * @param role source of metadata-supplied credentials 46 */ 47 MetadataCredentialCriteria(const RoleDescriptor& role); 48 ~MetadataCredentialCriteria()49 virtual ~MetadataCredentialCriteria() {} 50 51 /** 52 * Return the metadata role associated with the credentials. 53 * 54 * @return the associated metadata role 55 */ getRole()56 const RoleDescriptor& getRole() const { 57 return m_role; 58 } 59 60 /** 61 * Get whether the candidate credential matches the criteria. 62 * 63 * @param credential candidate 64 */ 65 bool matches(const xmltooling::Credential& credential) const; 66 67 private: 68 const RoleDescriptor& m_role; 69 }; 70 }; 71 }; 72 73 #endif /* __saml_metacrit_h__ */ 74