Bump version, add plugins ext library, draft of GSS-API attribute support.
authorscantor <scantor@cb58f699-b61c-0410-a6fe-9272a202ed29>
Tue, 8 Mar 2011 03:59:12 +0000 (03:59 +0000)
committerscantor <scantor@cb58f699-b61c-0410-a6fe-9272a202ed29>
Tue, 8 Mar 2011 03:59:12 +0000 (03:59 +0000)
git-svn-id: https://svn.shibboleth.net/cpp-sp/branches/REL_2@3412 cb58f699-b61c-0410-a6fe-9272a202ed29

26 files changed:
.cproject
.project
Makefile.am
adfs/adfs.rc
apache/mod_shib_13.rc
apache/mod_shib_20.rc
apache/mod_shib_22.rc
config_win32.h
configure.ac
fastcgi/shibauthorizer.rc
fastcgi/shibresponder.rc
isapi_shib/isapi_shib.rc
memcache-store/memcache-store.rc
nsapi_shib/nsapi_shib.rc
odbc-store/odbc-store.rc
plugins/GSSAPIAttributeExtractor.cpp [new file with mode: 0644]
plugins/Makefile.am [new file with mode: 0644]
plugins/internal.h [new file with mode: 0644]
plugins/plugins.cpp [new file with mode: 0644]
plugins/plugins.rc [new file with mode: 0644]
plugins/resource.h [new file with mode: 0644]
schemas/shibboleth-2.0-attribute-map.xsd
shibd/shibd.rc
shibsp/Makefile.am
shibsp/shibsp.rc
shibsp/version.h

index f8838ca..c063486 100644 (file)
--- a/.cproject
+++ b/.cproject
@@ -10,6 +10,7 @@
                                        <extension id="org.eclipse.linuxtools.cdt.autotools.AutotoolsScannerInfoProvider" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
                                        <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
                                        <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
                                        <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
                                        <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
                                        <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
                        </storageModule>
                        <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
                        <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-                       <storageModule moduleId="org.eclipse.cdt.core.pathentry">
-                               <pathentry include="C:/Program Files/Microsoft Visual Studio 9.0/VC/include" kind="inc" path="" system="true"/>
-                               <pathentry include="C:/log4shib-1.0.3/include" kind="inc" path="" system="true"/>
-                               <pathentry include="C:/xerces-c-3.0.1-x86-windows-vc-9.0/include" kind="inc" path="" system="true"/>
-                               <pathentry include="C:/xml-security-c-1.5.1/include" kind="inc" path="" system="true"/>
-                               <pathentry base-path="cpp-xmltooling" include="" kind="inc" path="" system="true"/>
-                               <pathentry base-path="cpp-opensaml2" include="" kind="inc" path="" system="true"/>
-                               <pathentry base-path="cpp-sp" include="shibsp" kind="inc" path="" system="true"/>
-                               <pathentry base-path="cpp-sp" include="" kind="inc" path="" system="true"/>
-                               <pathentry kind="mac" name="SHIBSP_API" path="" value=""/>
-                               <pathentry kind="mac" name="WIN32" path="" value=""/>
-                               <pathentry kind="mac" name="_MSC_VER" path="" value=""/>
-                               <pathentry kind="mac" name="SHIBSP_DLLLOCAL" path="" value=""/>
-                               <pathentry kind="mac" name="SHIBSP_LOGCAT" path="" value="&quot;Shibboleth&quot;"/>
-                               <pathentry kind="mac" name="XMLTOOLING_LOG4SHIB" path="" value=""/>
-                               <pathentry kind="out" path=""/>
-                               <pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
-                       </storageModule>
                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
                                <configuration artifactName="cpp-sp" buildArtefactType="org.eclipse.linuxtools.cdt.autotools.buildArtefactType.autotools" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.linuxtools.cdt.autotools.buildArtefactType.autotools" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450" name="Build (GNU)" parent="org.eclipse.linuxtools.cdt.autotools.configuration.build">
                                        <folderInfo id="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450." name="/" resourcePath="">
                                                <toolChain id="org.eclipse.linuxtools.cdt.autotools.toolChain.1841632347" name="GNU Autotools Toolchain" superClass="org.eclipse.linuxtools.cdt.autotools.toolChain">
-                                                       <targetPlatform id="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform.1692192358" isAbstract="false" name="GNU Autotools Target Platform" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform"/>
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF;org.eclipse.cdt.core.MachO64" id="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform.1692192358" isAbstract="false" name="GNU Autotools Target Platform" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform"/>
                                                        <builder buildPath="/Users/scantor/Documents/workspace/2.0/cpp-sp/build" id="org.eclipse.linuxtools.cdt.autotools.toolchain.builder.1116584470" keepEnvironmentInBuildfile="false" name="Autotools Makefile Generator" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.builder">
                                                                <outputEntries>
                                                                        <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Build (GNU)"/>
                                                                        <listOptionValue builtIn="false" value="C:/Users/scantor/Shibboleth/xerces-c-3.1.1-x86-windows-vc-10.0/include"/>
                                                                        <listOptionValue builtIn="false" value="C:/Users/scantor/Shibboleth/xml-security-c-1.6.0/include"/>
                                                                        <listOptionValue builtIn="false" value="C:/Users/scantor/Shibboleth/log4shib-1.0.5/include"/>
+                                                                       <listOptionValue builtIn="false" value="/opt/local/include"/>
                                                                </option>
                                                                <option id="org.eclipse.linuxtools.cdt.autotools.option.configure.prefix.1894632247" name="Arch-independent install directory (--prefix)" superClass="org.eclipse.linuxtools.cdt.autotools.option.configure.prefix" value="/Users/scantor/Documents/workspace/2.0/install" valueType="string"/>
-                                                               <option id="org.eclipse.linuxtools.cdt.autotools.option.configure.user.2071388265" name="User-specified configuration options" superClass="org.eclipse.linuxtools.cdt.autotools.option.configure.user" value="--enable-debug --with-log4shib=/opt/local --with-openssl=/opt/local --with-xmltooling=/Users/scantor/Documents/workspace/2.0/install" valueType="string"/>
+                                                               <option id="org.eclipse.linuxtools.cdt.autotools.option.configure.user.2071388265" name="User-specified configuration options" superClass="org.eclipse.linuxtools.cdt.autotools.option.configure.user" value="--enable-debug --with-log4shib=/opt/local --with-openssl=/opt/local --with-xmltooling=/Users/scantor/Documents/workspace/2.0/install --with-gssapi=/Users/scantor/Documents/workspace/2.0/install" valueType="string"/>
                                                                <inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure.1698708407" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure"/>
                                                                <inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure1.2095849049" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure1"/>
                                                        </tool>
@@ -71,7 +55,7 @@
                                        </folderInfo>
                                        <fileInfo id="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450.560277989" name="LOG4CPP.LICENSE" rcbsApplicability="disable" resourcePath="doc/LOG4CPP.LICENSE" toolsToInvoke=""/>
                                        <sourceEntries>
-                                               <entry excluding="Debug/|odbc-store|shibd|Release/|util|nsapi_shib|adfs|remoting|memcache-store|shibsp|apache|fastcgi|isapi_shib|x64/" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+                                               <entry excluding="plugins|Debug/|odbc-store|shibd|Release/|util|nsapi_shib|adfs|remoting|memcache-store|shibsp|apache|fastcgi|isapi_shib|x64/" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
                                                <entry excluding="attribute|handler|binding|impl|metadata|lite|remoting|Debug/|security|shibsp-lite-Release/|Release/|util|shibsp-lite-Debug/|x64/" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shibsp"/>
                                                <entry excluding="resolver|filtering" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shibsp/attribute"/>
                                                <entry excluding="impl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shibsp/attribute/filtering"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="apache"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="fastcgi"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="isapi_shib"/>
-                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="nsapi_shib"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="memcache-store"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="nsapi_shib"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="odbc-store"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="plugins"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shibd"/>
                                                <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="util"/>
                                        </sourceEntries>
                                </scannerConfigBuildInfo>
                        </storageModule>
                        <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
-                               <buildTargets>
-                                       <target name="all" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>all</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="all-local" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>all-local</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="am--refresh" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>am--refresh</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="check" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>check</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="clean" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>clean</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="clean-libtool" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>clean-libtool</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="config.h" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>config.h</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="ctags" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>ctags</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="ctags-recursive" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>ctags-recursive</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-all" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-all</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-bzip2" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-bzip2</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-gzip" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-gzip</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-hook" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-hook</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-shar" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-shar</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-tarZ" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-tarZ</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dist-zip" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dist-zip</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distcheck" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distcheck</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distclean" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distclean</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distclean-hdr" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distclean-hdr</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distclean-libtool" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distclean-libtool</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distclean-tags" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distclean-tags</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distcleancheck" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distcleancheck</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distdir" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distdir</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="distuninstallcheck" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>distuninstallcheck</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="dvi" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>dvi</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="html" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>html</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="info" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>info</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-data" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-data</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-dvi" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-dvi</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-exec" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-exec</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-html" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-html</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-info" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-info</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-man" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-man</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-pdf" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-pdf</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-ps" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-ps</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="install-strip" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>install-strip</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="installcheck" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>installcheck</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="installdirs" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>installdirs</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="maintainer-clean" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>maintainer-clean</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="Makefile" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>Makefile</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="mostlyclean" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>mostlyclean</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="mostlyclean-libtool" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>mostlyclean-libtool</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="pdf" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>pdf</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="pkginfo" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>pkginfo</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="Portfile" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>Portfile</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="ps" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>ps</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="shibboleth.spec" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>shibboleth.spec</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="stamp-h1" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>stamp-h1</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="tags" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>tags</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="tags-recursive" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>tags-recursive</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                                       <target name="uninstall" path="" targetID="org.eclipse.linuxtools.cdt.autotools.builder1">
-                                               <buildCommand>make</buildCommand>
-                                               <buildArguments/>
-                                               <buildTarget>uninstall</buildTarget>
-                                               <stopOnError>true</stopOnError>
-                                               <useDefaultCommand>true</useDefaultCommand>
-                                               <runAllBuilders>false</runAllBuilders>
-                                       </target>
-                               </buildTargets>
+                               <buildTargets/>
                        </storageModule>
                </cconfiguration>
        </storageModule>
index 0579a7a..3ee0ad3 100644 (file)
--- a/.project
+++ b/.project
@@ -8,11 +8,65 @@
        </projects>
        <buildSpec>
                <buildCommand>
-                       <name>org.eclipse.linuxtools.cdt.autotools.genmakebuilder</name>
+                       <name>org.eclipse.linuxtools.cdt.autotools.core.genmakebuilderV2</name>
                        <arguments>
                        </arguments>
                </buildCommand>
                <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <triggers>clean,full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>?children?</key>
+                                       <value>?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\||</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>?name?</key>
+                                       <value></value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.append_environment</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.buildArguments</key>
+                                       <value>-k</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.buildCommand</key>
+                                       <value>make</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.buildLocation</key>
+                                       <value>/Users/scantor/Documents/workspace/2.0/cpp-sp/build</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.contents</key>
+                                       <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+                                       <value>false</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.stopOnError</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+                                       <value>true</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
                        <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
                        <arguments>
                        </arguments>
index ef1c791..cc2eee8 100644 (file)
@@ -9,7 +9,21 @@ WANT_SUBDIRS = @WANT_SUBDIRS@
 
 SUBDIRS = $(WANT_SUBDIRS)
 
-DIST_SUBDIRS = doc schemas configs shibsp shibd adfs util apache nsapi_shib fastcgi odbc-store memcache-store selinux
+DIST_SUBDIRS = \
+       doc \
+       schemas \
+       configs \
+       shibsp \
+       shibd \
+       adfs \
+       plugins \
+       util \
+       apache \
+       nsapi_shib \
+       fastcgi \
+       odbc-store \
+       memcache-store \
+       selinux
 
 if DX_COND_doc
 all-local: doxygen-doc
index 18346fa..97e87d1 100644 (file)
@@ -54,8 +54,8 @@ END
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 2,4,2,0\r
- PRODUCTVERSION 2,4,2,0\r
+ FILEVERSION 2,5,0,0\r
+ PRODUCTVERSION 2,5,0,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -73,7 +73,7 @@ BEGIN
             VALUE "Comments", "\0"\r
             VALUE "CompanyName", "Internet2\0"\r
             VALUE "FileDescription", "Shibboleth ADFSv1 Plugin\0"\r
-            VALUE "FileVersion", "2, 4, 2, 0\0"\r
+            VALUE "FileVersion", "2, 5, 0, 0\0"\r
 #ifdef SHIBSP_LITE\r
             VALUE "InternalName", "adfs-lite\0"\r
 #else\r
@@ -87,8 +87,8 @@ BEGIN
             VALUE "OriginalFilename", "adfs.so\0"\r
 #endif\r
             VALUE "PrivateBuild", "\0"\r
-            VALUE "ProductName", "Shibboleth 2.4.2\0"\r
-            VALUE "ProductVersion", "2, 4, 2, 0\0"\r
+            VALUE "ProductName", "Shibboleth 2.5\0"\r
+            VALUE "ProductVersion", "2, 5, 0, 0\0"\r
             VALUE "SpecialBuild", "\0"\r
         END\r
     END\r
index ea88567..52140ef 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth Apache 1.3 Module\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "mod_shib_13\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "mod_shib_13.so\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
index 831823b..90449c2 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth Apache 2.0 Module\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "mod_shib_20\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "mod_shib_20.so\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
index af878e4..974b093 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth Apache 2.2 Module\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "mod_shib_22\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "mod_shib_22.so\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
index 71b5711..3533c9f 100644 (file)
 #define PACKAGE_NAME "shibboleth"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "shibboleth 2.4.2"
+#define PACKAGE_STRING "shibboleth 2.5"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "shibboleth"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.4.2"
+#define PACKAGE_VERSION "2.5"
 
 /* Define to the necessary symbol if this constant uses a non-standard name on
    your system. */
 /* #undef TM_IN_SYS_TIME */
 
 /* Version number of package */
-#define VERSION "2.4.2"
+#define VERSION "2.5"
 
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
index 318fca0..be3a599 100644 (file)
@@ -1,5 +1,5 @@
 AC_PREREQ([2.50])
-AC_INIT([shibboleth],[2.4.2],[https://bugs.internet2.edu/],[shibboleth])
+AC_INIT([shibboleth],[2.5],[https://bugs.internet2.edu/],[shibboleth])
 AC_CONFIG_SRCDIR(shibsp)
 AC_CONFIG_AUX_DIR(build-aux)
 AC_CONFIG_MACRO_DIR(m4)
@@ -372,10 +372,10 @@ AC_SUBST(LITE_LIBS)
 AC_SUBST(XMLSEC_LIBS)
 
 # output the underlying makefiles
-WANT_SUBDIRS="doc schemas configs shibsp shibd util"
+WANT_SUBDIRS="doc schemas configs shibsp plugins shibd util"
 AC_CONFIG_FILES([Makefile doc/Makefile schemas/Makefile \
-       configs/Makefile shibsp/Makefile shibd/Makefile \
-       util/Makefile selinux/Makefile])
+       configs/Makefile shibsp/Makefile plugins/Makefile \
+       shibd/Makefile util/Makefile selinux/Makefile])
 
 ## ADFS?
 AC_CONFIG_FILES([adfs/Makefile])
@@ -1083,6 +1083,14 @@ if test x"$want_gss" = xyes; then
      LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
      LIBS="$LIBS -lgssapi"
   fi
+
+  AC_MSG_CHECKING([whether GSS-API naming extensions are available])
+  AC_COMPILE_IFELSE(
+    [AC_LANG_PROGRAM([[#include <gssapi/gssapi_ext.h>]],
+    [[gss_get_name_attribute(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);]])],
+    [AC_MSG_RESULT([yes])AC_DEFINE([HAVE_GSSAPI_NAMINGEXTS],[1],[Define to 1 if GSS-API naming extensions are available.])],
+    [AC_MSG_RESULT([no])])
+
 else
   CPPFLAGS="$save_CPPFLAGS"
 fi
index e19ccd4..f072534 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 2,4,2,0\r
- PRODUCTVERSION 2,4,2,0\r
+ FILEVERSION 2,5,0,0\r
+ PRODUCTVERSION 2,5,0,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"\r
             VALUE "CompanyName", "Internet2\0"\r
             VALUE "FileDescription", "Shibboleth FastCGI Authorizer\0"\r
-            VALUE "FileVersion", "2, 4, 2, 0\0"\r
+            VALUE "FileVersion", "2, 5, 0, 0\0"\r
             VALUE "InternalName", "shibauthorizer\0"\r
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"\r
             VALUE "LegalTrademarks", "\0"\r
             VALUE "OriginalFilename", "shibauthorizer.exe\0"\r
             VALUE "PrivateBuild", "\0"\r
-            VALUE "ProductName", "Shibboleth 2.4.2\0"\r
-            VALUE "ProductVersion", "2, 4, 2, 0\0"\r
+            VALUE "ProductName", "Shibboleth 2.5\0"\r
+            VALUE "ProductVersion", "2, 5, 0, 0\0"\r
             VALUE "SpecialBuild", "\0"\r
         END\r
     END\r
index cdc6c4e..8ce2569 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 2,4,2,0\r
- PRODUCTVERSION 2,4,2,0\r
+ FILEVERSION 2,5,0,0\r
+ PRODUCTVERSION 2,5,0,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"\r
             VALUE "CompanyName", "Internet2\0"\r
             VALUE "FileDescription", "Shibboleth FastCGI Responder\0"\r
-            VALUE "FileVersion", "2, 4, 2, 0\0"\r
+            VALUE "FileVersion", "2, 5, 0, 0\0"\r
             VALUE "InternalName", "shibresponder\0"\r
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"\r
             VALUE "LegalTrademarks", "\0"\r
             VALUE "OriginalFilename", "shibresponder.exe\0"\r
             VALUE "PrivateBuild", "\0"\r
-            VALUE "ProductName", "Shibboleth 2.4.2\0"\r
-            VALUE "ProductVersion", "2, 4, 2, 0\0"\r
+            VALUE "ProductName", "Shibboleth 2.5\0"\r
+            VALUE "ProductVersion", "2, 5, 0, 0\0"\r
             VALUE "SpecialBuild", "\0"\r
         END\r
     END\r
index 786879d..bc63480 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth ISAPI Filter / Extension\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "isapi_shib\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "isapi_shib.dll\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
index 7319285..e0d9c12 100644 (file)
@@ -53,8 +53,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -71,12 +71,12 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth Memcache Storage Service Plugin\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "memcache-store\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "OriginalFilename", "memcache-store.so\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
         END
     END
     BLOCK "VarFileInfo"
index 22cc7a7..97e0cc9 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth NSAPI Extension\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "nsapi_shib\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "nsapi_shib.dll\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
index e12a849..fdda5c0 100644 (file)
@@ -53,8 +53,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,4,2,0
- PRODUCTVERSION 2,4,2,0
+ FILEVERSION 2,5,0,0
+ PRODUCTVERSION 2,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -71,12 +71,12 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "Internet2\0"
             VALUE "FileDescription", "Shibboleth ODBC Storage Service Plugin\0"
-            VALUE "FileVersion", "2, 4, 2, 0\0"
+            VALUE "FileVersion", "2, 5, 0, 0\0"
             VALUE "InternalName", "odbc-store\0"
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"
             VALUE "OriginalFilename", "odbc-store.so\0"
-            VALUE "ProductName", "Shibboleth 2.4.2\0"
-            VALUE "ProductVersion", "2, 4, 2, 0\0"
+            VALUE "ProductName", "Shibboleth 2.5\0"
+            VALUE "ProductVersion", "2, 5, 0, 0\0"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/plugins/GSSAPIAttributeExtractor.cpp b/plugins/GSSAPIAttributeExtractor.cpp
new file mode 100644 (file)
index 0000000..44aaa12
--- /dev/null
@@ -0,0 +1,385 @@
+/*
+ *  Copyright 2011 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
+ *
+ *     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.
+ */
+
+/**
+ * GSSAPIAttributeExtractor.cpp
+ *
+ * AttributeExtractor for a base64-encoded GSS-API context.
+ */
+
+#include "internal.h"
+
+#ifdef HAVE_GSSAPI_NAMINGEXTS
+
+#include <shibsp/exceptions.h>
+#include <shibsp/Application.h>
+#include <shibsp/SPConfig.h>
+#include <shibsp/attribute/ScopedAttribute.h>
+#include <shibsp/attribute/SimpleAttribute.h>
+#include <shibsp/attribute/resolver/AttributeExtractor.h>
+#include <shibsp/remoting/ddf.h>
+#include <shibsp/util/SPConstants.h>
+#include <saml/saml1/core/Assertions.h>
+#include <saml/saml2/metadata/Metadata.h>
+#include <xmltooling/unicode.h>
+#include <xmltooling/XMLToolingConfig.h>
+#include <xmltooling/util/NDC.h>
+#include <xmltooling/util/ReloadableXMLFile.h>
+#include <xmltooling/util/Threads.h>
+#include <xmltooling/util/XMLHelper.h>
+#include <xercesc/util/Base64.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+
+#include <gssapi/gssapi_ext.h>
+
+using namespace shibsp;
+using namespace opensaml::saml2md;
+using namespace opensaml;
+using namespace xmltooling;
+using namespace std;
+
+namespace shibsp {
+
+#if defined (_MSC_VER)
+    #pragma warning( push )
+    #pragma warning( disable : 4250 )
+#endif
+
+    class GSSAPIExtractorImpl
+    {
+    public:
+        GSSAPIExtractorImpl(const DOMElement* e, Category& log);
+        ~GSSAPIExtractorImpl() {
+            if (m_document)
+                m_document->release();
+        }
+
+        void setDocument(DOMDocument* doc) {
+            m_document = doc;
+        }
+
+        void extractAttributes(
+            gss_name_t initiatorName, gss_buffer_t namingAttribute, vector<Attribute*>& attributes
+            ) const;
+
+        void getAttributeIds(vector<string>& attributes) const {
+            attributes.insert(attributes.end(), m_attributeIds.begin(), m_attributeIds.end());
+        }
+
+    private:
+        struct Rule {
+            Rule() : authenticated(true), scopeDelimiter(0) {}
+            vector<string> ids;
+            bool authenticated;
+            char scopeDelimiter;
+        };
+
+        Category& m_log;
+        DOMDocument* m_document;
+        map<string,Rule> m_attrMap;
+        vector<string> m_attributeIds;
+    };
+
+    class GSSAPIExtractor : public AttributeExtractor, public ReloadableXMLFile
+    {
+    public:
+        GSSAPIExtractor(const DOMElement* e)
+                : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AttributeExtractor.GSSAPI")), m_impl(nullptr) {
+            background_load();
+        }
+        ~GSSAPIExtractor() {
+            shutdown();
+            delete m_impl;
+        }
+
+        void extractAttributes(
+            const Application& application,
+            const RoleDescriptor* issuer,
+            const XMLObject& xmlObject,
+            vector<Attribute*>& attributes
+            ) const;
+
+        void getAttributeIds(std::vector<std::string>& attributes) const {
+            if (m_impl)
+                m_impl->getAttributeIds(attributes);
+        }
+
+    protected:
+        pair<bool,DOMElement*> background_load();
+
+    private:
+        GSSAPIExtractorImpl* m_impl;
+    };
+
+#if defined (_MSC_VER)
+    #pragma warning( pop )
+#endif
+
+    AttributeExtractor* GSSAPIAttributeExtractorFactory(const DOMElement* const & e)
+    {
+        return new GSSAPIExtractor(e);
+    }
+
+    static const XMLCh _aliases[] =             UNICODE_LITERAL_7(a,l,i,a,s,e,s);
+    static const XMLCh Attributes[] =           UNICODE_LITERAL_10(A,t,t,r,i,b,u,t,e,s);
+    static const XMLCh _authenticated[] =       UNICODE_LITERAL_13(a,u,t,h,e,n,t,i,c,a,t,e,d);
+    static const XMLCh GSSAPIAttribute[] =      UNICODE_LITERAL_15(G,S,S,A,P,I,A,t,t,r,i,b,u,t,e);
+    static const XMLCh _id[] =                  UNICODE_LITERAL_2(i,d);
+    static const XMLCh _name[] =                UNICODE_LITERAL_4(n,a,m,e);
+    static const XMLCh _scopeDelimiter[] =      UNICODE_LITERAL_14(s,c,o,p,e,D,e,l,i,m,i,t,e,r);
+};
+
+GSSAPIExtractorImpl::GSSAPIExtractorImpl(const DOMElement* e, Category& log)
+    : m_log(log), m_document(nullptr)
+{
+#ifdef _DEBUG
+    xmltooling::NDC ndc("GSSAPIExtractorImpl");
+#endif
+
+    if (!XMLHelper::isNodeNamed(e, shibspconstants::SHIB2ATTRIBUTEMAP_NS, Attributes))
+        throw ConfigurationException("GSSAPI AttributeExtractor requires am:Attributes at root of configuration.");
+
+    DOMElement* child = XMLHelper::getFirstChildElement(e, shibspconstants::SHIB2ATTRIBUTEMAP_NS, GSSAPIAttribute);
+    while (child) {
+        // Check for missing name or id.
+        const XMLCh* name = child->getAttributeNS(nullptr, _name);
+        if (!name || !*name) {
+            m_log.warn("skipping GSSAPIAttribute with no name");
+            child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, GSSAPIAttribute);
+            continue;
+        }
+
+        auto_ptr_char id(child->getAttributeNS(nullptr, _id));
+        if (!id.get() || !*id.get()) {
+            m_log.warn("skipping GSSAPIAttribute with no id");
+            child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, GSSAPIAttribute);
+            continue;
+        }
+        else if (!strcmp(id.get(), "REMOTE_USER")) {
+            m_log.warn("skipping GSSAPIAttribute, id of REMOTE_USER is a reserved name");
+            child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, GSSAPIAttribute);
+            continue;
+        }
+
+        // Fetch/create the map entry and see if it's a duplicate rule.
+        auto_ptr_char attrname(name);
+        Rule& decl = m_attrMap[attrname.get()];
+        if (!decl.ids.empty()) {
+            m_log.warn("skipping duplicate GSS-API Attribute mapping (same name)");
+            child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, GSSAPIAttribute);
+            continue;
+        }
+
+        m_log.info("creating mapping for GSS-API Attribute %s", attrname.get());
+
+        decl.ids.push_back(id.get());
+        m_attributeIds.push_back(id.get());
+
+        name = child->getAttributeNS(nullptr, _aliases);
+        if (name && *name) {
+            auto_ptr_char aliases(name);
+            char* pos;
+            char* start = const_cast<char*>(aliases.get());
+            while (start && *start) {
+                while (*start && isspace(*start))
+                    start++;
+                if (!*start)
+                    break;
+                pos = strchr(start,' ');
+                if (pos)
+                    *pos=0;
+                if (strcmp(start, "REMOTE_USER")) {
+                    decl.ids.push_back(start);
+                    m_attributeIds.push_back(start);
+                }
+                else {
+                    m_log.warn("skipping alias, REMOTE_USER is a reserved name");
+                }
+                start = pos ? pos+1 : nullptr;
+            }
+        }
+
+        decl.authenticated = XMLHelper::getAttrBool(child, true, _authenticated);
+        string delim = XMLHelper::getAttrString(child, "", _scopeDelimiter);
+        if (!delim.empty())
+            decl.scopeDelimiter = delim[0];
+
+        child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, GSSAPIAttribute);
+    }
+}
+
+void GSSAPIExtractorImpl::extractAttributes(
+    gss_name_t initiatorName, gss_buffer_t namingAttribute, vector<Attribute*>& attributes
+    ) const
+{
+    // First we have to determine if this GSS attribute is something we recognize.
+    string attrname(reinterpret_cast<char*>(namingAttribute->value), namingAttribute->length);
+    map<string,Rule>::const_iterator rule = m_attrMap.find(attrname);
+    if (rule == m_attrMap.end()) {
+        m_log.info("skipping unmapped GSS-API attribute: %s", attrname.c_str());
+        return;
+    }
+
+    vector<string> values;
+
+    OM_uint32 major,minor;
+    int authenticated=-1,more=-1;
+    do {
+        gss_buffer_desc buf = GSS_C_EMPTY_BUFFER;
+        major = gss_get_name_attribute(
+            &minor, initiatorName, namingAttribute, &authenticated, nullptr, &buf, nullptr, &more
+            );
+        if (major == GSS_S_COMPLETE) {
+            if (rule->second.authenticated && !authenticated) {
+                m_log.warn("skipping unauthenticated GSS-API attribute: %s", attrname.c_str());
+                gss_release_buffer(&minor, &buf);
+                return;
+            }
+            if (buf.length)
+                values.push_back(string(reinterpret_cast<char*>(buf.value), buf.length));
+            gss_release_buffer(&minor, &buf);
+        }
+        else {
+            m_log.warn("error obtaining values for GSS-API attribute (%s): %u:%u", attrname.c_str(), major, minor);
+        }
+    } while (major == GSS_S_COMPLETE && more);
+
+    if (values.empty())
+        return;
+
+    if (rule->second.scopeDelimiter) {
+        auto_ptr<ScopedAttribute> scoped(new ScopedAttribute(rule->second.ids, rule->second.scopeDelimiter));
+        vector< pair<string,string> >& dest = scoped->getValues();
+        for (vector<string>::const_iterator v = values.begin(); v != values.end(); ++v) {
+            const char* value = v->c_str();
+            const char* scope = strchr(value, rule->second.scopeDelimiter);
+            if (scope) {
+                if (*(scope+1))
+                    dest.push_back(pair<string,string>(v->substr(0, scope-value), scope + 1));
+                else
+                    m_log.warn("ignoring unscoped value");
+            }
+            else {
+                m_log.warn("ignoring unscoped value");
+            }
+        }
+        if (!scoped->getValues().empty())
+            attributes.push_back(scoped.release());
+    }
+    else {
+        // If unscoped, just copy over the values.
+        auto_ptr<SimpleAttribute> simple(new SimpleAttribute(rule->second.ids));
+        simple->getValues() = values;
+        attributes.push_back(simple.release());
+    }
+}
+
+void GSSAPIExtractor::extractAttributes(
+    const Application& application, const RoleDescriptor* issuer, const XMLObject& xmlObject, vector<Attribute*>& attributes
+    ) const
+{
+    if (!m_impl)
+        return;
+
+    static const XMLCh _GSSAPI[] = UNICODE_LITERAL_6(G,S,S,A,P,I);
+    if (!XMLString::equals(xmlObject.getElementQName().getLocalPart(), _GSSAPI)) {
+        m_log.debug("unable to extract attributes, unknown XML object type: %s", xmlObject.getElementQName().toString().c_str());
+        return;
+    }
+
+    const XMLCh* encodedWide = xmlObject.getTextContent();
+    if (!encodedWide || !*encodedWide) {
+        m_log.warn("unable to extract attributes, GSSAPI element had no text content");
+        return;
+    }
+
+    gss_ctx_id_t gss = GSS_C_NO_CONTEXT;
+
+    xsecsize_t x;
+    OM_uint32 major,minor;
+    auto_ptr_char encoded(encodedWide);
+    XMLByte* decoded=Base64::decode(reinterpret_cast<const XMLByte*>(encoded.get()), &x);
+    if (decoded) {
+        gss_buffer_desc importbuf;
+        importbuf.length = x;
+        importbuf.value = decoded;
+        major = gss_import_sec_context(&minor, &importbuf, &gss);
+        if (major != GSS_S_COMPLETE) {
+            m_log.warn("unable to extract attributes, GSS context import failed (%u:%u)", major, minor);
+            gss = GSS_C_NO_CONTEXT;
+        }
+#ifdef SHIBSP_XERCESC_HAS_XMLBYTE_RELEASE
+        XMLString::release(&decoded);
+#else
+        XMLString::release((char**)&decoded);
+#endif
+    }
+    else {
+        m_log.warn("unable to extract attributes, base64 decode of GSSAPI context failed");
+    }
+
+    if (gss == GSS_C_NO_CONTEXT) {
+        return;
+    }
+    // Extract the initiator name from the context.
+    gss_name_t srcname;
+    major = gss_inquire_context(&minor, gss, &srcname, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
+    if (major == GSS_S_COMPLETE) {
+
+        gss_buffer_set_t attrnames = GSS_C_NO_BUFFER_SET;
+        major = gss_inquire_name(&minor, srcname, nullptr, nullptr, &attrnames);
+        if (major == GSS_S_COMPLETE) {
+            for (size_t i = 0; i < attrnames->count; ++i) {
+                m_impl->extractAttributes(srcname, &attrnames->elements[i], attributes);
+            }
+            gss_release_buffer_set(&minor, &attrnames);
+        }
+        else {
+            m_log.warn("unable to extract attributes, GSS name attribute inquiry failed (%u:%u)", major, minor);
+        }
+        gss_release_name(&minor, &srcname);
+    }
+    else {
+        m_log.warn("unable to extract attributes, GSS initiator name extraction failed (%u:%u)", major, minor);
+    }
+
+    gss_delete_sec_context(&minor, &gss, GSS_C_NO_BUFFER);
+}
+
+pair<bool,DOMElement*> GSSAPIExtractor::background_load()
+{
+    // Load from source using base class.
+    pair<bool,DOMElement*> raw = ReloadableXMLFile::load();
+
+    // If we own it, wrap it.
+    XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : nullptr);
+
+    GSSAPIExtractorImpl* impl = new GSSAPIExtractorImpl(raw.second, m_log);
+
+    // If we held the document, transfer it to the impl. If we didn't, it's a no-op.
+    impl->setDocument(docjanitor.release());
+
+    // Perform the swap inside a lock.
+    if (m_lock)
+        m_lock->wrlock();
+    SharedLock locker(m_lock, false);
+    delete m_impl;
+    m_impl = impl;
+
+    return make_pair(false,(DOMElement*)nullptr);
+}
+
+#endif
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
new file mode 100644 (file)
index 0000000..ab08e71
--- /dev/null
@@ -0,0 +1,32 @@
+AUTOMAKE_OPTIONS = foreign
+
+plugindir = $(libdir)/@PACKAGE@
+plugin_LTLIBRARIES = plugins.la
+
+noinst_HEADERS = \
+       internal.h
+
+common_sources = \
+       plugins.cpp
+
+plugins_la_SOURCES = \
+       ${common_sources} \
+       GSSAPIAttributeExtractor.cpp
+
+#plugins_lite_la_SOURCES = \
+#      ${common_sources}
+
+plugins_la_LIBADD = $(XMLSEC_LIBS) \
+       $(top_builddir)/shibsp/libshibsp.la
+
+#plugins_lite_la_LIBADD = $(LITE_LIBS) \
+#      $(top_builddir)/shibsp/libshibsp-lite.la
+
+plugins_la_LDFLAGS = -module -avoid-version
+#plugins_lite_la_LDFLAGS = -module -avoid-version
+#plugins_lite_la_CPPFLAGS = -DSHIBSP_LITE
+
+install-exec-hook:
+       for la in $(plugin_LTLIBRARIES) ; do rm -f $(DESTDIR)$(plugindir)/$$la ; done
+
+EXTRA_DIST = plugins.vcxproj resource.h plugins.rc
diff --git a/plugins/internal.h b/plugins/internal.h
new file mode 100644 (file)
index 0000000..d6bb096
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *  Copyright 2011 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.
+ */
+
+/*
+ *  internal.h - internally visible declarations
+ */
+
+#ifndef __plugins_internal_h__
+#define __plugins_internal_h__
+
+#ifdef WIN32
+# define _CRT_SECURE_NO_DEPRECATE 1
+# define _CRT_NONSTDC_NO_DEPRECATE 1
+#endif
+
+// eventually we might be able to support autoconf via cygwin...
+#if defined (_MSC_VER) || defined(__BORLANDC__)
+# include "config_win32.h"
+#else
+# include "config.h"
+#endif
+
+#include <shibsp/base.h>
+
+#include <memory>
+#include <xmltooling/logging.h>
+
+using namespace xmltooling::logging;
+using namespace xercesc;
+
+#endif /* __plugins_internal_h__ */
diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp
new file mode 100644 (file)
index 0000000..a845cfb
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ *  Copyright 2011 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.
+ */
+
+/**
+ * plugins.cpp
+ *
+ * Extension plugins for Shibboleth SP.
+ */
+
+#include "internal.h"
+#include <shibsp/SPConfig.h>
+
+using namespace shibsp;
+using namespace xmltooling;
+using namespace std;
+
+#ifdef WIN32
+# define PLUGINS_EXPORTS __declspec(dllexport)
+#else
+# define PLUGINS_EXPORTS
+#endif
+
+namespace shibsp {
+#ifdef HAVE_GSSAPI_NAMINGEXTS
+    PluginManager<AttributeExtractor,string,const DOMElement*>::Factory GSSAPIExtractorFactory;
+#endif
+};
+
+extern "C" int PLUGINS_EXPORTS xmltooling_extension_init(void*)
+{
+#ifdef HAVE_GSSAPI_NAMINGEXTS
+    SPConfig::getConfig().AttributeExtractorManager.registerFactory("GSSAPI", GSSAPIExtractorFactory);
+#endif
+    return 0;   // signal success
+}
+
+extern "C" void PLUGINS_EXPORTS xmltooling_extension_term()
+{
+    // Factories normally get unregistered during library shutdown, so no work usually required here.
+}
diff --git a/plugins/plugins.rc b/plugins/plugins.rc
new file mode 100644 (file)
index 0000000..57cded7
--- /dev/null
@@ -0,0 +1,117 @@
+//Microsoft Developer Studio generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "afxres.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// English (U.S.) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#include ""afxres.h""\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+#ifndef _MAC\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Version\r
+//\r
+\r
+VS_VERSION_INFO VERSIONINFO\r
+ FILEVERSION 2,5,0,0\r
+ PRODUCTVERSION 2,5,0,0\r
+ FILEFLAGSMASK 0x3fL\r
+#ifdef _DEBUG\r
+ FILEFLAGS 0x1L\r
+#else\r
+ FILEFLAGS 0x0L\r
+#endif\r
+ FILEOS 0x40004L\r
+ FILETYPE 0x2L\r
+ FILESUBTYPE 0x0L\r
+BEGIN\r
+    BLOCK "StringFileInfo"\r
+    BEGIN\r
+        BLOCK "040904b0"\r
+        BEGIN\r
+            VALUE "Comments", "\0"\r
+            VALUE "CompanyName", "Internet2\0"\r
+            VALUE "FileDescription", "Shibboleth SP Plugins\0"\r
+            VALUE "FileVersion", "2, 5, 0, 0\0"\r
+#ifdef SHIBSP_LITE\r
+            VALUE "InternalName", "plugins-lite\0"\r
+#else\r
+            VALUE "InternalName", "plugins\0"\r
+#endif\r
+            VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"\r
+            VALUE "LegalTrademarks", "\0"\r
+#ifdef SHIBSP_LITE\r
+            VALUE "OriginalFilename", "plugins-lite.so\0"\r
+#else\r
+            VALUE "OriginalFilename", "plugins.so\0"\r
+#endif\r
+            VALUE "PrivateBuild", "\0"\r
+            VALUE "ProductName", "Shibboleth 2.5\0"\r
+            VALUE "ProductVersion", "2, 5, 0, 0\0"\r
+            VALUE "SpecialBuild", "\0"\r
+        END\r
+    END\r
+    BLOCK "VarFileInfo"\r
+    BEGIN\r
+        VALUE "Translation", 0x409, 1200\r
+    END\r
+END\r
+\r
+#endif    // !_MAC\r
+\r
+#endif    // English (U.S.) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/plugins/resource.h b/plugins/resource.h
new file mode 100644 (file)
index 0000000..9ceeb95
--- /dev/null
@@ -0,0 +1,15 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by plugins.rc
+//
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        101
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
index d119da3..b40a8dd 100644 (file)
@@ -4,7 +4,7 @@
         xmlns:am="urn:mace:shibboleth:2.0:attribute-map"
         xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
         elementFormDefault="qualified"
-        version="2.3">
+        version="2.5">
 
     <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
 
     
     <element name="Attributes">
         <annotation>
-            <documentation>The set of SAML 1/2 attribute mappings.</documentation>
+            <documentation>The set of SAML or GSS-API attribute mappings.</documentation>
         </annotation>
         <complexType>
             <sequence>
                 <element name="MetadataProvider" type="am:PluggableType" minOccurs="0"/>
                 <element name="TrustEngine" type="am:PluggableType" minOccurs="0"/>
                 <element name="AttributeFilter" type="am:PluggableType" minOccurs="0"/>
-                <element name="Attribute" type="am:AttributeType" maxOccurs="unbounded"/>
+                <choice maxOccurs="unbounded">
+                    <element name="Attribute" type="am:AttributeType"/>
+                    <element name="GSSAPIAttribute" type="am:GSSAPIAttributeType"/>
+                </choice>
                 <element ref="ds:Signature" minOccurs="0"/>
             </sequence>
             <attribute name="metadataPolicyId" type="am:string"/>
@@ -56,7 +59,7 @@
 
     <complexType name="AttributeType">
         <annotation>
-            <documentation>Rule for mapping a SAML 1/2 attribute to an internal attribute.</documentation>
+            <documentation>Rule for mapping a SAML attribute to an internal attribute.</documentation>
         </annotation>
         <sequence>
             <element name="AttributeDecoder" type="am:AttributeDecoderType" minOccurs="0"/>
           </annotation>
         </attribute>
     </complexType>
+
+    <complexType name="GSSAPIAttributeType">
+        <annotation>
+            <documentation>Rule for mapping a GSS-API naming attribute to an internal attribute.</documentation>
+        </annotation>
+        <attribute name="id" type="am:string" use="required">
+            <annotation>
+                <documentation>The internal attribute ID to which this SAML attribute maps.</documentation>
+            </annotation>
+        </attribute>
+        <attribute name="aliases" type="am:listOfStrings">
+            <annotation>
+                <documentation>Optional aliases for the internal attribute to which this SAML attribute maps.</documentation>
+            </annotation>
+        </attribute>
+        <attribute name="name" type="am:string" use="required">
+            <annotation>
+                <documentation>The SAML 1 AttributeName or SAML 2 Name of the attribute.</documentation>
+            </annotation>
+        </attribute>
+        <attribute name="authenticated" type="boolean">
+            <annotation>
+                <documentation>If true, only an authenticated GSS-API naming attribute will be mapped.</documentation>
+            </annotation>
+        </attribute>
+        <attribute name="scopeDelimiter" type="am:string">
+            <annotation>
+                <documentation>
+                    The character(s) used to delimit the scoped information from the scope.
+                </documentation>
+            </annotation>
+        </attribute>
+    </complexType>
     
     <complexType name="AttributeDecoderType" abstract="true">
         <annotation>
index 6e51922..822415b 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 2,4,2,0\r
- PRODUCTVERSION 2,4,2,0\r
+ FILEVERSION 2,5,0,0\r
+ PRODUCTVERSION 2,5,0,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -47,14 +47,14 @@ BEGIN
             VALUE "Comments", "\0"\r
             VALUE "CompanyName", "Internet2\0"\r
             VALUE "FileDescription", "Shibboleth Daemon Service\0"\r
-            VALUE "FileVersion", "2, 4, 2, 0\0"\r
+            VALUE "FileVersion", "2, 5, 0, 0\0"\r
             VALUE "InternalName", "shibd\0"\r
             VALUE "LegalCopyright", "Copyright © 2011 Internet2\0"\r
             VALUE "LegalTrademarks", "\0"\r
             VALUE "OriginalFilename", "shibd.exe\0"\r
             VALUE "PrivateBuild", "\0"\r
-            VALUE "ProductName", "Shibboleth 2.4.2\0"\r
-            VALUE "ProductVersion", "2, 4, 2, 0\0"\r
+            VALUE "ProductName", "Shibboleth 2.5\0"\r
+            VALUE "ProductVersion", "2, 5, 0, 0\0"\r
             VALUE "SpecialBuild", "\0"\r
         END\r
     END\r
index 4bd9dbe..539ea30 100644 (file)
@@ -217,9 +217,9 @@ libshibsp_la_SOURCES = \
 
 # this is different from the project version
 # http://sources.redhat.com/autobook/autobook/autobook_91.html
-libshibsp_la_LDFLAGS = -version-info 5:2:0
+libshibsp_la_LDFLAGS = -version-info 5:3:0
 libshibsp_la_LIBADD = $(XMLSEC_LIBS)
-libshibsp_lite_la_LDFLAGS = -version-info 5:2:0
+libshibsp_lite_la_LDFLAGS = -version-info 5:3:0
 libshibsp_lite_la_LIBADD = $(LITE_LIBS)
 libshibsp_lite_la_CPPFLAGS = -DSHIBSP_LITE
 
index e2ea857..d336a70 100644 (file)
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,4,2,0\r
- PRODUCTVERSION 2,4,2,0\r
+ FILEVERSION 1,4,3,0\r
+ PRODUCTVERSION 2,5,0,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -51,7 +51,7 @@ BEGIN
 #else\r
             VALUE "FileDescription", "Shibboleth SP Library\0"\r
 #endif\r
-            VALUE "FileVersion", "1, 4, 2, 0\0"\r
+            VALUE "FileVersion", "1, 4, 3, 0\0"\r
 #ifdef SHIBSP_LITE\r
 #ifdef _DEBUG\r
             VALUE "InternalName", "shibsp-lite1_4D\0"\r
@@ -81,8 +81,8 @@ BEGIN
 #endif\r
 #endif\r
             VALUE "PrivateBuild", "\0"\r
-            VALUE "ProductName", "Shibboleth 2.4.2\0"\r
-            VALUE "ProductVersion", "2, 4, 2, 0\0"\r
+            VALUE "ProductName", "Shibboleth 2.5\0"\r
+            VALUE "ProductVersion", "2, 5, 0, 0\0"\r
             VALUE "SpecialBuild", "\0"\r
         END\r
     END\r
index d56aebf..4394e9c 100644 (file)
@@ -39,7 +39,7 @@
 
 #define SHIBSP_VERSION_MAJOR 1
 #define SHIBSP_VERSION_MINOR 4
-#define SHIBSP_VERSION_REVISION 2
+#define SHIBSP_VERSION_REVISION 3
 
 /** DO NOT MODIFY BELOW THIS LINE */