Add dummy credential resolver.
authorScott Cantor <cantor.2@osu.edu>
Thu, 11 Aug 2011 18:56:12 +0000 (18:56 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 11 Aug 2011 18:56:12 +0000 (18:56 +0000)
xmltooling/Makefile.am
xmltooling/security/CredentialResolver.h
xmltooling/security/impl/CredentialResolver.cpp
xmltooling/security/impl/DummyCredentialResolver.cpp [new file with mode: 0644]
xmltooling/xmltooling.vcxproj
xmltooling/xmltooling.vcxproj.filters

index 035e2af..e6e946a 100644 (file)
@@ -137,6 +137,7 @@ xmlsec_sources = \
        security/impl/ChainingTrustEngine.cpp \
        security/impl/CredentialCriteria.cpp \
        security/impl/CredentialResolver.cpp \
+       security/impl/DummyCredentialResolver.cpp \
        security/impl/ExplicitKeyTrustEngine.cpp \
        security/impl/FilesystemCredentialResolver.cpp \
        security/impl/InlineKeyResolver.cpp \
index c828487..89be8c2 100644 (file)
@@ -74,6 +74,9 @@ namespace xmltooling {
     /** CredentialResolver based on local files with no criteria support. */
     #define FILESYSTEM_CREDENTIAL_RESOLVER  "File"
 
+    /** CredentialResolver that returns nothing, for use with some APIs. */
+    #define DUMMY_CREDENTIAL_RESOLVER  "Dummy"
+
     /** CredentialResolver based on chaining together other resolvers. */
     #define CHAINING_CREDENTIAL_RESOLVER    "Chaining"
 };
index e77304d..e00b22c 100644 (file)
@@ -30,7 +30,8 @@
 using namespace xmltooling;
 
 namespace xmltooling {
-    XMLTOOL_DLLLOCAL PluginManager<CredentialResolver,std::string,const xercesc::DOMElement*>::Factory FilesystemCredentialResolverFactory; 
+    XMLTOOL_DLLLOCAL PluginManager<CredentialResolver,std::string,const xercesc::DOMElement*>::Factory FilesystemCredentialResolverFactory;
+    XMLTOOL_DLLLOCAL PluginManager<CredentialResolver,std::string,const xercesc::DOMElement*>::Factory DummyCredentialResolverFactory;
     XMLTOOL_DLLLOCAL PluginManager<CredentialResolver,std::string,const xercesc::DOMElement*>::Factory ChainingCredentialResolverFactory; 
 };
 
@@ -38,6 +39,7 @@ void XMLTOOL_API xmltooling::registerCredentialResolvers()
 {
     XMLToolingConfig& conf=XMLToolingConfig::getConfig();
     conf.CredentialResolverManager.registerFactory(FILESYSTEM_CREDENTIAL_RESOLVER, FilesystemCredentialResolverFactory);
+    conf.CredentialResolverManager.registerFactory(DUMMY_CREDENTIAL_RESOLVER, DummyCredentialResolverFactory);
     conf.CredentialResolverManager.registerFactory(CHAINING_CREDENTIAL_RESOLVER, ChainingCredentialResolverFactory);
 }
 
diff --git a/xmltooling/security/impl/DummyCredentialResolver.cpp b/xmltooling/security/impl/DummyCredentialResolver.cpp
new file mode 100644 (file)
index 0000000..8ce16bb
--- /dev/null
@@ -0,0 +1,63 @@
+/**
+ * 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.
+ *
+ * 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
+ *
+ * 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.
+ */
+
+/**
+ * DummyCredentialResolver.cpp
+ * 
+ * CredentialResolver that returns nothing.
+ */
+
+#include "internal.h"
+#include "XMLToolingConfig.h"
+#include "security/CredentialResolver.h"
+#include "util/NDC.h"
+
+using namespace xmltooling;
+using namespace std;
+
+using xercesc::DOMElement;
+
+namespace xmltooling {
+
+    class XMLTOOL_DLLLOCAL DummyCredentialResolver : public CredentialResolver
+    {
+    public:
+        DummyCredentialResolver(const DOMElement*) {}
+        virtual ~DummyCredentialResolver() {}
+
+        Lockable* lock() {return this;}
+        void unlock() {}
+
+        const Credential* resolve(const CredentialCriteria* criteria=nullptr) const {
+            return nullptr;
+        }
+        vector<const Credential*>::size_type resolve(
+            vector<const Credential*>& results, const CredentialCriteria* criteria=nullptr
+            ) const {
+            return 0;
+        }
+    };
+
+    CredentialResolver* XMLTOOL_DLLLOCAL DummyCredentialResolverFactory(const DOMElement* const & e)
+    {
+        return new DummyCredentialResolver(e);
+    }
+
+};
index 9f352f9..2e204be 100644 (file)
     <ClCompile Include="security\impl\ChainingTrustEngine.cpp" />\r
     <ClCompile Include="security\impl\CredentialCriteria.cpp" />\r
     <ClCompile Include="security\impl\CredentialResolver.cpp" />\r
+    <ClCompile Include="security\impl\DummyCredentialResolver.cpp" />\r
     <ClCompile Include="security\impl\ExplicitKeyTrustEngine.cpp" />\r
     <ClCompile Include="security\impl\FilesystemCredentialResolver.cpp" />\r
     <ClCompile Include="security\impl\InlineKeyResolver.cpp" />\r
index 987c007..c8c0c38 100644 (file)
     <ClCompile Include="security\impl\CredentialResolver.cpp">\r
       <Filter>Source Files\security\impl</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="security\impl\DummyCredentialResolver.cpp">\r
+      <Filter>Source Files\security\impl</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="security\impl\ExplicitKeyTrustEngine.cpp">\r
       <Filter>Source Files\security\impl</Filter>\r
     </ClCompile>\r