Clean up file headers and NOTICE file.
[shibboleth/cpp-sp-resolver.git] / src / shibresolver / resolver.h
index f9c1feb..3eee765 100644 (file)
@@ -1,9 +1,8 @@
-/*
- *  Copyright 2010 JANET(UK)
- *
- * 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
+/**
+ * See the NOTICE file distributed with this work for 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
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
 #include <string>
 #include <vector>
 
+#ifdef SHIBRESOLVER_HAVE_GSSGNU
+# include <gss.h>
+#elif defined SHIBRESOLVER_HAVE_GSSMIT
+# include <gssapi/gssapi.h>
+# include <gssapi/gssapi_generic.h>
+#else
+# include <gssapi.h>
+#endif
+
 namespace xmltooling {
     class XMLTOOL_API XMLObject;
 };
@@ -89,6 +97,35 @@ namespace shibresolver {
          */
         void addToken(const xmltooling::XMLObject* token);
 
+#ifdef SHIBRESOLVER_HAVE_GSSAPI
+        /**
+         * Adds a GSS-API exported mechanism name as input to
+         * the resolver.
+         * <p>The caller retains ownership of the buffer.
+         *
+         * @param ctx an input exported mechanism name to evaluate
+         */
+        void addToken(const gss_buffer_t name);
+
+# ifdef SHIBRESOLVER_HAVE_GSSAPI_NAMINGEXTS
+        /**
+         * Adds a GSS-API mechanism name as input to the resolver.
+         * <p>The caller retains ownership of the name.
+         *
+         * @param name an input mechanism name to evaluate
+         */
+        void addToken(gss_name_t name);
+# endif
+
+        /**
+         * Adds a GSS-API security context as input to the resolver.
+         * <p>The caller loses ownership of the context.
+         *
+         * @param ctx an input context to evaluate
+         */
+        void addToken(gss_ctx_id_t* ctx);
+#endif
+
         /**
          * Adds an Attribute as input to the resolver.
          * <p>The caller retains ownership of the object.
@@ -171,6 +208,9 @@ namespace shibresolver {
 
     private:
         shibsp::ServiceProvider* m_sp;
+#ifdef SHIBRESOLVER_HAVE_GSSAPI
+        xmltooling::XMLObject* m_gsswrapper;
+#endif
         std::vector<shibsp::Attribute*> m_resolvedAttributes;
     };