Pull in Apache 2.2 module.
authorcantor <cantor@cb58f699-b61c-0410-a6fe-9272a202ed29>
Thu, 30 Nov 2006 21:08:21 +0000 (21:08 +0000)
committercantor <cantor@cb58f699-b61c-0410-a6fe-9272a202ed29>
Thu, 30 Nov 2006 21:08:21 +0000 (21:08 +0000)
git-svn-id: https://svn.middleware.georgetown.edu/cpp-sp/trunk@2073 cb58f699-b61c-0410-a6fe-9272a202ed29

apache/Makefile.am
apache/mod_apache.cpp
apache/mod_shib13.vcproj
apache/mod_shib20.vcproj
apache/mod_shib22.vcproj [new file with mode: 0644]
apache/mod_shib_22.cpp [new file with mode: 0644]
apache/mod_shib_22.rc [new file with mode: 0644]

index 0e19c30..7187e54 100644 (file)
@@ -32,5 +32,21 @@ install-exec-hook:
 
 endif
 
-EXTRA_DIST = mod_apache.cpp mod_shib_13.cpp mod_shib_20.cpp mod_shib13.vcproj mod_shib20.vcproj \
-       resource.h mod_shib_13.rc mod_shib_20.rc
+if BUILD_AP22
+modshib22dir = $(libexecdir)
+modshib22_LTLIBRARIES = mod_shib_22.la
+mod_shib_22_la_SOURCES = mod_shib_22.cpp
+mod_shib_22_la_CXXFLAGS = $(APXS22_CFLAGS) -I$(APXS22_INCLUDE)
+mod_shib_22_la_LDFLAGS = -module -avoid-version
+mod_shib_22_la_LIBADD = \
+  $(top_builddir)/shib/libshib.la \
+  $(top_builddir)/shib-target/libshib-target.la
+
+install-exec-hook:
+       for la in $(modshib22_LTLIBRARIES) ; do rm -f $(DESTDIR)$(modshib22dir)/$$la ; done
+
+endif
+
+EXTRA_DIST = mod_apache.cpp mod_shib_13.cpp mod_shib_20.cpp mod_shib_22.cpp \
+       mod_shib13.vcproj mod_shib20.vcproj mod_shib22.vcproj \
+       resource.h mod_shib_13.rc mod_shib_20.rc mod_shib_22.rc
index cae4c69..08654f3 100644 (file)
@@ -77,6 +77,7 @@ namespace {
     char* g_szSHIBConfig = NULL;
     char* g_szSchemaDir = NULL;
     ShibTargetConfig* g_Config = NULL;
+    string g_unsetHeaderValue;
     static const char* g_UserDataKey = "_shib_check_user_";
 }
 
@@ -294,6 +295,7 @@ public:
   }
   virtual void clearHeader(const string &name) {
     ap_table_unset(m_req->headers_in, name.c_str());
+    ap_table_set(m_req->headers_in, name.c_str(), g_unsetHeaderValue.c_str());
   }
   virtual void setHeader(const string &name, const string &value) {
     ap_table_set(m_req->headers_in, name.c_str(), value.c_str());
@@ -950,6 +952,15 @@ extern "C" void shib_child_init(apr_pool_t* p, server_rec* s)
             ap_log_error(APLOG_MARK,APLOG_CRIT|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() failed to load configuration");
             exit(1);
         }
+
+        IConfig* conf=g_Config->getINI();
+        Locker locker(conf);
+        const IPropertySet* props=conf->getPropertySet("Local");
+        if (props) {
+            pair<bool,const char*> unsetValue=props->getString("unsetHeaderValue");
+            if (unsetValue.first)
+                g_unsetHeaderValue = unsetValue.second;
+        }
     }
     catch (...) {
         ap_log_error(APLOG_MARK,APLOG_CRIT|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() failed to initialize system");
@@ -1037,7 +1048,7 @@ module MODULE_VAR_EXPORT mod_shib = {
     NULL                       /* post read-request */
 };
 
-#elif defined(SHIB_APACHE_20)
+#elif defined(SHIB_APACHE_20) || defined(SHIB_APACHE_22)
 
 extern "C" void shib_register_hooks (apr_pool_t *p)
 {
index 8ee0e42..15b13c3 100644 (file)
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..,..\..\..\opensaml\c,\Apache\include"
+                               AdditionalIncludeDirectories="..;&quot;..\..\cpp-opensaml1&quot;;\Apache\include"
                                PreprocessorDefinitions="_WINDOWS;EAPI;WIN32;_DEBUG"
                                BasicRuntimeChecks="3"
                                RuntimeLibrary="3"
index 7edb485..faad9dc 100644 (file)
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..,..\..\..\opensaml\c,\Apache2\include"
+                               AdditionalIncludeDirectories="..;&quot;..\..\cpp-opensaml1&quot;;\Apache2\include"
                                PreprocessorDefinitions="_WINDOWS;WIN32;_DEBUG"
                                BasicRuntimeChecks="3"
                                RuntimeLibrary="3"
diff --git a/apache/mod_shib22.vcproj b/apache/mod_shib22.vcproj
new file mode 100644 (file)
index 0000000..a00d3e8
--- /dev/null
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="mod_shib22"\r
+       ProjectGUID="{B44C0852-83B8-4FB2-A86E-097C9C8256D0}"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory=".\mod_shib22___Win32_Release"\r
+                       IntermediateDirectory=".\mod_shib22___Win32_Release"\r
+                       ConfigurationType="2"\r
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+                       UseOfMFC="0"\r
+                       ATLMinimizesCRunTimeLibraryUsage="false"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                               PreprocessorDefinitions="NDEBUG"\r
+                               MkTypLibCompatible="true"\r
+                               SuppressStartupBanner="true"\r
+                               TargetEnvironment="1"\r
+                               TypeLibraryName=".\mod_shib22___Win32_Release/mod_shib22.tlb"\r
+                               HeaderFileName=""\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="2"\r
+                               InlineFunctionExpansion="1"\r
+                               AdditionalIncludeDirectories="..,..\..\..\opensaml\c,\Apache22\include"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS"\r
+                               StringPooling="true"\r
+                               RuntimeLibrary="2"\r
+                               EnableFunctionLevelLinking="true"\r
+                               RuntimeTypeInfo="true"\r
+                               PrecompiledHeaderFile=".\mod_shib22___Win32_Release/mod_shib22.pch"\r
+                               AssemblerListingLocation=".\mod_shib22___Win32_Release/"\r
+                               ObjectFile=".\mod_shib22___Win32_Release/"\r
+                               ProgramDataBaseFileName=".\mod_shib22___Win32_Release/"\r
+                               WarningLevel="3"\r
+                               SuppressStartupBanner="true"\r
+                               Detect64BitPortabilityProblems="true"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                               PreprocessorDefinitions="NDEBUG"\r
+                               Culture="1033"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="log4cpp.lib xerces-c_2.lib saml_5.lib libapr-1.lib libhttpd.lib"\r
+                               OutputFile="mod_shib22___Win32_Release/mod_shib_22.so"\r
+                               LinkIncremental="1"\r
+                               SuppressStartupBanner="true"\r
+                               AdditionalLibraryDirectories="../../../opensaml/c/saml/Release,\Apache22\lib"\r
+                               ProgramDatabaseFile=".\mod_shib22___Win32_Release/mod_shib_22.pdb"\r
+                               ImportLibrary=".\mod_shib22___Win32_Release/mod_shib_22.lib"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                               SuppressStartupBanner="true"\r
+                               OutputFile=".\mod_shib22___Win32_Release/mod_shib22.bsc"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory=".\mod_shib22___Win32_Debug"\r
+                       IntermediateDirectory=".\mod_shib22___Win32_Debug"\r
+                       ConfigurationType="2"\r
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+                       UseOfMFC="0"\r
+                       ATLMinimizesCRunTimeLibraryUsage="false"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                               PreprocessorDefinitions="_DEBUG"\r
+                               MkTypLibCompatible="true"\r
+                               SuppressStartupBanner="true"\r
+                               TargetEnvironment="1"\r
+                               TypeLibraryName=".\mod_shib22___Win32_Debug/mod_shib22.tlb"\r
+                               HeaderFileName=""\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="..,..\..\cpp-opensaml1,\Apache22D\include"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               RuntimeTypeInfo="true"\r
+                               PrecompiledHeaderFile=".\mod_shib22___Win32_Debug/mod_shib22.pch"\r
+                               AssemblerListingLocation=".\mod_shib22___Win32_Debug/"\r
+                               ObjectFile=".\mod_shib22___Win32_Debug/"\r
+                               ProgramDataBaseFileName=".\mod_shib22___Win32_Debug/"\r
+                               BrowseInformation="1"\r
+                               WarningLevel="3"\r
+                               SuppressStartupBanner="true"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                               PreprocessorDefinitions="_DEBUG"\r
+                               Culture="1033"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="log4cppD.lib xerces-c_2D.lib saml_5D.lib libapr-1.lib libhttpd.lib"\r
+                               OutputFile="mod_shib22___Win32_Debug/mod_shib_22.so"\r
+                               LinkIncremental="2"\r
+                               SuppressStartupBanner="true"\r
+                               AdditionalLibraryDirectories="../../../opensaml/c/saml/Debug,\Apache22D\lib"\r
+                               GenerateDebugInformation="true"\r
+                               ProgramDatabaseFile=".\mod_shib22___Win32_Debug/mod_shib_22.pdb"\r
+                               ImportLibrary=".\mod_shib22___Win32_Debug/mod_shib_22.lib"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                               SuppressStartupBanner="true"\r
+                               OutputFile=".\mod_shib22___Win32_Debug/mod_shib22.bsc"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <File\r
+                       RelativePath="mod_shib_22.cpp"\r
+                       >\r
+                       <FileConfiguration\r
+                               Name="Release|Win32"\r
+                               >\r
+                               <Tool\r
+                                       Name="VCCLCompilerTool"\r
+                                       AdditionalIncludeDirectories=""\r
+                                       PreprocessorDefinitions=""\r
+                               />\r
+                       </FileConfiguration>\r
+                       <FileConfiguration\r
+                               Name="Debug|Win32"\r
+                               >\r
+                               <Tool\r
+                                       Name="VCCLCompilerTool"\r
+                                       AdditionalIncludeDirectories=""\r
+                                       PreprocessorDefinitions=""\r
+                               />\r
+                       </FileConfiguration>\r
+               </File>\r
+               <File\r
+                       RelativePath="mod_shib_22.rc"\r
+                       >\r
+                       <FileConfiguration\r
+                               Name="Release|Win32"\r
+                               >\r
+                               <Tool\r
+                                       Name="VCResourceCompilerTool"\r
+                                       PreprocessorDefinitions=""\r
+                               />\r
+                       </FileConfiguration>\r
+                       <FileConfiguration\r
+                               Name="Debug|Win32"\r
+                               >\r
+                               <Tool\r
+                                       Name="VCResourceCompilerTool"\r
+                                       PreprocessorDefinitions=""\r
+                               />\r
+                       </FileConfiguration>\r
+               </File>\r
+               <File\r
+                       RelativePath="resource.h"\r
+                       >\r
+               </File>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/apache/mod_shib_22.cpp b/apache/mod_shib_22.cpp
new file mode 100644 (file)
index 0000000..9f6e2ff
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ *  Copyright 2001-2006 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
+ *
+ *     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.
+ */
+
+/* mod_shib_22.cpp -- a wrapper around the apache module code to
+ *                   build for Apache 2.2
+ *
+ * Created by:  Scott Cantor
+ *
+ */
+
+#define SHIB_APACHE_22 1
+
+#define MODULE_VAR_EXPORT AP_MODULE_DECLARE_DATA
+#define SH_AP_POOL apr_pool_t
+#define SH_AP_TABLE apr_table_t
+#define SH_AP_CONFIGFILE ap_configfile_t
+#define array_header apr_array_header_t
+
+#define SH_AP_R(r) 0,r
+#define SH_AP_USER(r) r->user
+
+#define SERVER_ERROR HTTP_INTERNAL_SERVER_ERROR
+#define REDIRECT HTTP_MOVED_TEMPORARILY
+#define ap_pcalloc apr_pcalloc
+#define ap_pstrdup apr_pstrdup
+#define ap_pstrcat apr_pstrcat
+#define ap_psprintf apr_psprintf
+#define ap_table_get apr_table_get
+#define ap_table_addn apr_table_addn
+#define ap_table_setn apr_table_setn
+#define ap_table_unset apr_table_unset
+#define ap_table_set apr_table_set
+#define ap_clear_pool apr_pool_clear
+#define ap_destroy_pool apr_pool_destroy
+#define ap_make_table apr_table_make
+
+#define ap_send_http_header(r)
+#define ap_hard_timeout(str,r)
+#define ap_reset_timeout(r)
+#define ap_kill_timeout(r)
+
+#define ap_http_method ap_http_scheme
+
+#include "mod_apache.cpp"
diff --git a/apache/mod_shib_22.rc b/apache/mod_shib_22.rc
new file mode 100644 (file)
index 0000000..72d0afd
--- /dev/null
@@ -0,0 +1,109 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,3,0,0
+ PRODUCTVERSION 1,3,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "Comments", "\0"
+            VALUE "CompanyName", "Internet2\0"
+            VALUE "FileDescription", "Shibboleth Apache 2.2 Module\0"
+            VALUE "FileVersion", "1, 3, 0, 0\0"
+            VALUE "InternalName", "mod_shib_22\0"
+            VALUE "LegalCopyright", "Copyright © 2006 Internet2\0"
+            VALUE "LegalTrademarks", "\0"
+            VALUE "OriginalFilename", "mod_shib_22.so\0"
+            VALUE "PrivateBuild", "\0"
+            VALUE "ProductName", "Shibboleth 1.3\0"
+            VALUE "ProductVersion", "1, 3, 0, 0\0"
+            VALUE "SpecialBuild", "\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+#endif    // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+