<listOptionValue builtIn="false" value="WIN32"/>\r
</option>\r
<option id="org.eclipse.linuxtools.cdt.autotools.option.configure.includes.1925509387" name="includes" superClass="org.eclipse.linuxtools.cdt.autotools.option.configure.includes" valueType="includePath">\r
-<listOptionValue builtIn="false" value=""${workspace_loc:/cpp-sp/cpp-xmltooling}""/>\r
-<listOptionValue builtIn="false" value=""${workspace_loc:/cpp-sp/cpp-opensaml2}""/>\r
-<listOptionValue builtIn="false" value="C:/log4shib-1.0.3/include"/>\r
-<listOptionValue builtIn="false" value="C:/xerces-c-3.0.1-x86-windows-vc-9.0/include"/>\r
<listOptionValue builtIn="false" value="C:/xml-security-c-1.5.1/include"/>\r
-<listOptionValue builtIn="false" value=""C:/Program Files/Microsoft Visual Studio 9.0/VC/include""/>\r
+<listOptionValue builtIn="false" value=""${workspace_loc:/cpp-xmltooling/xmltooling}""/>\r
+<listOptionValue builtIn="false" value=""${workspace_loc:/cpp-opensaml2/saml}""/>\r
+<listOptionValue builtIn="false" value=""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include""/>\r
+<listOptionValue builtIn="false" value="C:/xerces-c-3.1.1-x86-windows-vc-10.0/include"/>\r
+<listOptionValue builtIn="false" value="C:/log4shib-1.0.5/include"/>\r
</option>\r
<inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure.1698708407" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure"/>\r
<inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure1.2095849049" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure1"/>\r
</toolChain>\r
</folderInfo>\r
<fileInfo id="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450.560277989" name="LOG4CPP.LICENSE" rcbsApplicability="disable" resourcePath="doc/LOG4CPP.LICENSE" toolsToInvoke=""/>\r
+<folderInfo id="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450.327309470" name="/" resourcePath="apache">\r
+<toolChain id="org.eclipse.linuxtools.cdt.autotools.toolChain.651654003" name="GNU Autotools Toolchain" superClass="org.eclipse.linuxtools.cdt.autotools.toolChain" unusedChildren="">\r
+<tool id="org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure.243725962" name="configure" superClass="org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure.1723135584">\r
+<inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure.1657073427" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure"/>\r
+<inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure1.2046555518" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure1"/>\r
+</tool>\r
+<tool id="org.eclipse.linuxtools.cdt.autotools.toolchain.tool.autogen.1169775038" name="autogen.sh" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.tool.autogen.782580356"/>\r
+</toolChain>\r
+</folderInfo>\r
<sourceEntries>\r
<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=""/>\r
<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"/>\r
</scannerInfoProvider>\r
</profile>\r
</scannerConfigBuildInfo>\r
+<scannerConfigBuildInfo instanceId="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450;org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450.327309470;org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure.243725962;org.eclipse.linuxtools.cdt.autotools.inputType.configure.1657073427">\r
+<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"/>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="makefileGenerator">\r
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+</scannerConfigBuildInfo>\r
+<scannerConfigBuildInfo instanceId="org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450;org.eclipse.linuxtools.cdt.autotools.configuration.build.951860450.327309470;org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure.243725962;org.eclipse.linuxtools.cdt.autotools.inputType.configure1.2046555518">\r
+<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"/>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="makefileGenerator">\r
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+</scannerConfigBuildInfo>\r
</storageModule>\r
</cconfiguration>\r
</storageModule>\r
/Portfile
/pkginfo
/*.gz
+/*.sdf
+/*.opensdf
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Server Modules", "Server Modules", "{26BA8F84-6E42-41FA-9B13-5D3F4B5B2050}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{96AE4FC9-45EF-4C18-9F3B-EDA439E26E4C}"
fastcgi\Makefile.am = fastcgi\Makefile.am
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "isapi_shib", "isapi_shib\isapi_shib.vcproj", "{87C25D4E-8D19-4513-B0BA-BC668BC2DEE3}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib13", "apache\mod_shib13.vcproj", "{D243B43E-728E-4F32-BDFF-B3A897037C6D}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib20", "apache\mod_shib20.vcproj", "{68E9568B-476C-4289-B93C-893432378ADC}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsapi_shib", "nsapi_shib\nsapi_shib.vcproj", "{1396D80A-8672-4224-9B02-95F3F4207CDB}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib22", "apache\mod_shib22.vcproj", "{B44C0852-83B8-4FB2-A86E-097C9C8256D0}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "odbc-store", "odbc-store\odbc-store.vcproj", "{666A63A7-983F-4C19-8411-207F24305197}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibsp", "shibsp\shibsp.vcproj", "{81F0F7A6-DC36-46EF-957F-F9E81D4403F6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibd", "shibd\shibd.vcproj", "{F13141B5-6C87-40BB-8D4E-5CC56EBB4C59}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F6} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F6}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibsp-lite", "shibsp\shibsp-lite.vcproj", "{81F0F7A6-DC36-46EF-957F-F9E81D4403F7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adfs", "adfs\adfs.vcproj", "{26D4FABF-ACDE-4947-9C4A-7AE1B50CD83A}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F6} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F6}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adfs-lite", "adfs\adfs-lite.vcproj", "{26D4FABF-ACDE-4947-9C4A-7AE1B50CD83B}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mdquery", "util\mdquery.vcproj", "{F13141B6-6C87-40BB-8D4E-5CC56EBB4C5A}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F6} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F6}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolvertest", "util\resolvertest.vcproj", "{F13141B6-6C87-40BB-8D4E-5CC56EBB4C59}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F6} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F6}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibauthorizer", "fastcgi\shibauthorizer.vcproj", "{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibresponder", "fastcgi\shibresponder.vcproj", "{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F7} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F7}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache-store", "memcache-store\memcache-store.vcproj", "{666A63A7-983F-4C19-8411-207F24305198}"
- ProjectSection(ProjectDependencies) = postProject
- {81F0F7A6-DC36-46EF-957F-F9E81D4403F6} = {81F0F7A6-DC36-46EF-957F-F9E81D4403F6}
- EndProjectSection
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Schemas", "Schemas", "{0F172F71-BDD7-44D1-9147-061DC20683BD}"
ProjectSection(SolutionItems) = preProject
schemas\catalog.xml.in = schemas\catalog.xml.in
doc\RELEASE.txt = doc\RELEASE.txt
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "isapi_shib", "isapi_shib\isapi_shib.vcxproj", "{87C25D4E-8D19-4513-B0BA-BC668BC2DEE3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib_13", "apache\mod_shib13.vcxproj", "{D243B43E-728E-4F32-BDFF-B3A897037C6D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib_20", "apache\mod_shib20.vcxproj", "{68E9568B-476C-4289-B93C-893432378ADC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsapi_shib", "nsapi_shib\nsapi_shib.vcxproj", "{1396D80A-8672-4224-9B02-95F3F4207CDB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib_22", "apache\mod_shib22.vcxproj", "{B44C0852-83B8-4FB2-A86E-097C9C8256D0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "odbc-store", "odbc-store\odbc-store.vcxproj", "{666A63A7-983F-4C19-8411-207F24305197}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibsp", "shibsp\shibsp.vcxproj", "{81F0F7A6-DC36-46EF-957F-F9E81D4403F6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibd", "shibd\shibd.vcxproj", "{F13141B5-6C87-40BB-8D4E-5CC56EBB4C59}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibsp-lite", "shibsp\shibsp-lite.vcxproj", "{81F0F7A6-DC36-46EF-957F-F9E81D4403F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adfs", "adfs\adfs.vcxproj", "{26D4FABF-ACDE-4947-9C4A-7AE1B50CD83A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adfs-lite", "adfs\adfs-lite.vcxproj", "{26D4FABF-ACDE-4947-9C4A-7AE1B50CD83B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mdquery", "util\mdquery.vcxproj", "{F13141B6-6C87-40BB-8D4E-5CC56EBB4C5A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolvertest", "util\resolvertest.vcxproj", "{F13141B6-6C87-40BB-8D4E-5CC56EBB4C59}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibauthorizer", "fastcgi\shibauthorizer.vcxproj", "{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibresponder", "fastcgi\shibresponder.vcxproj", "{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache-store", "memcache-store\memcache-store.vcxproj", "{666A63A7-983F-4C19-8411-207F24305198}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Debug|Win32.ActiveCfg = Debug|Win32
{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Debug|Win32.Build.0 = Debug|Win32
{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Debug|x64.ActiveCfg = Debug|x64
+ {8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Debug|x64.Build.0 = Debug|x64
{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Release|Win32.ActiveCfg = Release|Win32
{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Release|Win32.Build.0 = Release|Win32
{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Release|x64.ActiveCfg = Release|x64
+ {8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}.Release|x64.Build.0 = Release|x64
{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Debug|Win32.ActiveCfg = Debug|Win32
{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Debug|Win32.Build.0 = Debug|Win32
{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Debug|x64.ActiveCfg = Debug|x64
+ {B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Debug|x64.Build.0 = Debug|x64
{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Release|Win32.ActiveCfg = Release|Win32
{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Release|Win32.Build.0 = Release|Win32
{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Release|x64.ActiveCfg = Release|x64
+ {B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}.Release|x64.Build.0 = Release|x64
{666A63A7-983F-4C19-8411-207F24305198}.Debug|Win32.ActiveCfg = Debug|Win32
{666A63A7-983F-4C19-8411-207F24305198}.Debug|Win32.Build.0 = Debug|Win32
{666A63A7-983F-4C19-8411-207F24305198}.Debug|x64.ActiveCfg = Debug|x64
install-exec-hook:
for la in $(plugin_LTLIBRARIES) ; do rm -f $(DESTDIR)$(plugindir)/$$la ; done
-EXTRA_DIST = adfs.vcproj adfs-lite.vcproj resource.h adfs.rc
+EXTRA_DIST = adfs.vcxproj adfs-lite.vcxproj resource.h adfs.rc
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{26D4FABF-ACDE-4947-9C4A-7AE1B50CD83B}</ProjectGuid>\r
+ <RootNamespace>adfs-lite</RootNamespace>\r
+ <Keyword>Win32Proj</Keyword>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>SHIBSP_LITE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>SHIBSP_LITE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="adfs.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="adfs.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/**
* adfs.cpp
*
- * ADFSv1 extension library
+ * ADFSv1 extension library.
*/
#if defined (_MSC_VER) || defined(__BORLANDC__)
{
public:
ADFSSessionInitiator(const DOMElement* e, const char* appId)
- : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.ADFS"), NULL, &m_remapper), m_appId(appId), m_binding(WSFED_NS) {
+ : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.ADFS"), nullptr, &m_remapper), m_appId(appId), m_binding(WSFED_NS) {
// If Location isn't set, defer address registration until the setParent call.
pair<bool,const char*> loc = getString("Location");
if (loc.first) {
string target;
pair<bool,const char*> prop;
pair<bool,const char*> acClass;
- const Handler* ACS=NULL;
+ const Handler* ACS=nullptr;
const Application& app=request.getApplication();
if (isHandler) {
// Out of process means the POST data via the request can be exposed directly to the private method.
// The method will handle POST preservation if necessary *before* issuing the response, but only if
// it dispatches to an IdP.
- return doRequest(app, &request, request, entityID.c_str(), ACSloc.c_str(), (acClass.first ? acClass.second : NULL), target);
+ return doRequest(app, &request, request, entityID.c_str(), ACSloc.c_str(), (acClass.first ? acClass.second : nullptr), target);
}
// Remote the call.
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) to generate ADFS request", aid ? aid : "(missing)");
if (!entityID || !acsLocation)
throw ConfigurationException("No entityID or acsLocation parameter supplied to remoted SessionInitiator.");
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
// Wrap the outgoing object with a Response facade.
// Since we're remoted, the result should either be a throw, which we pass on,
// a false/0 return, which we just return as an empty structure, or a response/redirect,
// which we capture in the facade and send back.
- doRequest(*app, NULL, *http.get(), entityID, acsLocation, in["authnContextClassRef"].string(), relayState);
+ doRequest(*app, nullptr, *http.get(), entityID, acsLocation, in["authnContextClassRef"].string(), relayState);
if (!ret.isstruct())
ret.structure();
ret.addmember("RelayState").unsafe_string(relayState.c_str());
preserveRelayState(app, httpResponse, relayState);
// UTC timestamp
- time_t epoch=time(NULL);
+ time_t epoch=time(nullptr);
#ifndef HAVE_GMTIME_R
struct tm* ptime=gmtime(&epoch);
#else
if (!response || !response->hasChildren())
throw FatalProfileException("Incoming message was not of the proper type or contains no security token.");
- const Assertion* token = NULL;
+ const Assertion* token = nullptr;
for (vector<XMLObject*>::const_iterator xo = response->getUnknownXMLObjects().begin(); xo != response->getUnknownXMLObjects().end(); ++xo) {
// Look for the RequestedSecurityToken element.
if (XMLString::equals((*xo)->getElementQName().getLocalPart(), RequestedSecurityToken)) {
extractMessageDetails(*token, m_protocol.get(), policy);
// Populate recipient as audience.
- const EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL;
+ const EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr;
policy.getAudiences().push_back(application.getRelyingParty(entity)->getXMLString("entityID").second);
// Run the policy over the assertion. Handles replay, freshness, and
if (!policy.isAuthenticated())
throw SecurityPolicyException("Unable to establish security of incoming assertion.");
- saml1::NameIdentifier* saml1name=NULL;
- saml2::NameID* saml2name=NULL;
- const XMLCh* authMethod=NULL;
- const XMLCh* authInstant=NULL;
- time_t now = time(NULL), sessionExp = 0;
+ saml1::NameIdentifier* saml1name=nullptr;
+ saml2::NameID* saml2name=nullptr;
+ const XMLCh* authMethod=nullptr;
+ const XMLCh* authInstant=nullptr;
+ time_t now = time(nullptr), sessionExp = 0;
const PropertySet* sessionProps = application.getPropertySet("Sessions");
const saml1::Assertion* saml1token = dynamic_cast<const saml1::Assertion*>(token);
checkAddress(application, httpRequest, ip.get());
}
- saml2name = saml2token->getSubject() ? saml2token->getSubject()->getNameID() : NULL;
+ saml2name = saml2token->getSubject() ? saml2token->getSubject()->getNameID() : nullptr;
if (ssoStatement->getAuthnContext() && ssoStatement->getAuthnContext()->getAuthnContextClassRef())
authMethod = ssoStatement->getAuthnContext()->getAuthnContextClassRef()->getReference();
if (ssoStatement->getAuthnInstant())
// To complete processing, we need to extract and resolve attributes and then create the session.
// Normalize a SAML 1.x NameIdentifier...
- auto_ptr<saml2::NameID> nameid(saml1name ? saml2::NameIDBuilder::buildNameID() : NULL);
+ auto_ptr<saml2::NameID> nameid(saml1name ? saml2::NameIDBuilder::buildNameID() : nullptr);
if (saml1name) {
nameid->setName(saml1name->getName());
nameid->setFormat(saml1name->getFormat());
saml1name,
(saml1name ? nameid.get() : saml2name),
authMethod,
- NULL,
+ nullptr,
&tokens
)
);
m_protocol.get(),
(saml1name ? nameid.get() : saml2name),
authInstant,
- NULL,
+ nullptr,
authMethod,
- NULL,
+ nullptr,
&tokens,
- ctx.get() ? &ctx->getResolvedAttributes() : NULL
+ ctx.get() ? &ctx->getResolvedAttributes() : nullptr
);
}
// Basically we have no way to tell in the Logout receiving handler whether
// we initiated the logout or not.
- Session* session = NULL;
+ Session* session = nullptr;
try {
session = request.getSession(false, true, false); // don't cache it and ignore all checks
if (!session)
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for logout", aid ? aid : "(missing)");
auto_ptr<HTTPRequest> req(getRequest(in));
// Set up a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
- Session* session = NULL;
+ Session* session = nullptr;
try {
- session = app->getServiceProvider().getSessionCache()->find(*app, *req.get(), NULL, NULL);
+ session = app->getServiceProvider().getSessionCache()->find(*app, *req.get(), nullptr, nullptr);
}
catch (exception& ex) {
m_log.error("error accessing current session: %s", ex.what());
if (session) {
session->unlock();
- session = NULL;
+ session = nullptr;
application.getServiceProvider().getSessionCache()->remove(application, httpRequest, &httpResponse);
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{26D4FABF-ACDE-4947-9C4A-7AE1B50CD83A}</ProjectGuid>\r
+ <RootNamespace>adfs</RootNamespace>\r
+ <Keyword>Win32Proj</Keyword>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;saml2D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;saml2D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;saml2.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;saml2.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="adfs.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="adfs.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f6}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/*.mak
/*.aps
/*.user
-/mod_shib20-Debug
-/mod_shib22-Debug
-/mod_shib22-Release
-/mod_shib20-Release
+/mod_shib_20-Debug
+/mod_shib_22-Debug
+/mod_shib_22-Release
+/mod_shib_20-Release
/x64
endif
EXTRA_DIST = mod_apache.cpp mod_shib_13.cpp mod_shib_20.cpp mod_shib_22.cpp \
- mod_shib13.vcproj mod_shib20.vcproj mod_shib22.vcproj \
+ mod_shib13.vcxproj mod_shib20.vcxproj mod_shib22.vcxproj \
resource.h mod_shib_13.rc mod_shib_20.rc mod_shib_22.rc
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* mod_apache.cpp
*
- * Apache module implementation
+ * Apache module implementation.
*/
#define SHIBSP_LITE
extern "C" module MODULE_VAR_EXPORT mod_shib;
namespace {
- char* g_szSHIBConfig = NULL;
- char* g_szSchemaDir = NULL;
- char* g_szPrefix = NULL;
- SPConfig* g_Config = NULL;
+ char* g_szSHIBConfig = nullptr;
+ char* g_szSchemaDir = nullptr;
+ char* g_szPrefix = nullptr;
+ SPConfig* g_Config = nullptr;
string g_unsetHeaderValue,g_spoofKey;
bool g_checkSpoofing = true;
bool g_catchAll = false;
extern "C" void* create_shib_server_config(SH_AP_POOL* p, server_rec* s)
{
shib_server_config* sc=(shib_server_config*)ap_pcalloc(p,sizeof(shib_server_config));
- sc->szScheme = NULL;
+ sc->szScheme = nullptr;
return sc;
}
else if (parent->szScheme)
sc->szScheme=ap_pstrdup(p,parent->szScheme);
else
- sc->szScheme=NULL;
+ sc->szScheme=nullptr;
return sc;
}
extern "C" void* create_shib_dir_config (SH_AP_POOL* p, char* d)
{
shib_dir_config* dc=(shib_dir_config*)ap_pcalloc(p,sizeof(shib_dir_config));
- dc->tSettings = NULL;
- dc->szAuthGrpFile = NULL;
+ dc->tSettings = nullptr;
+ dc->szAuthGrpFile = nullptr;
dc->bRequireAll = -1;
dc->bAuthoritative = -1;
- dc->szApplicationId = NULL;
- dc->szRequireWith = NULL;
- dc->szRedirectToSSL = NULL;
+ dc->szApplicationId = nullptr;
+ dc->szRequireWith = nullptr;
+ dc->szRedirectToSSL = nullptr;
dc->bOff = -1;
dc->bBasicHijack = -1;
dc->bRequireSession = -1;
shib_dir_config* child=(shib_dir_config*)sub;
// The child supersedes any matching table settings in the parent.
- dc->tSettings = NULL;
+ dc->tSettings = nullptr;
if (parent->tSettings)
dc->tSettings = ap_copy_table(p, parent->tSettings);
if (child->tSettings) {
else if (parent->szAuthGrpFile)
dc->szAuthGrpFile=ap_pstrdup(p,parent->szAuthGrpFile);
else
- dc->szAuthGrpFile=NULL;
+ dc->szAuthGrpFile=nullptr;
if (child->szApplicationId)
dc->szApplicationId=ap_pstrdup(p,child->szApplicationId);
else if (parent->szApplicationId)
dc->szApplicationId=ap_pstrdup(p,parent->szApplicationId);
else
- dc->szApplicationId=NULL;
+ dc->szApplicationId=nullptr;
if (child->szRequireWith)
dc->szRequireWith=ap_pstrdup(p,child->szRequireWith);
else if (parent->szRequireWith)
dc->szRequireWith=ap_pstrdup(p,parent->szRequireWith);
else
- dc->szRequireWith=NULL;
+ dc->szRequireWith=nullptr;
if (child->szRedirectToSSL)
dc->szRedirectToSSL=ap_pstrdup(p,child->szRedirectToSSL);
else if (parent->szRedirectToSSL)
dc->szRedirectToSSL=ap_pstrdup(p,parent->szRedirectToSSL);
else
- dc->szRedirectToSSL=NULL;
+ dc->szRedirectToSSL=nullptr;
dc->bOff=((child->bOff==-1) ? parent->bOff : child->bOff);
dc->bBasicHijack=((child->bBasicHijack==-1) ? parent->bBasicHijack : child->bBasicHijack);
extern "C" const char* ap_set_global_string_slot(cmd_parms* parms, void*, const char* arg)
{
*((char**)(parms->info))=ap_pstrdup(parms->pool,arg);
- return NULL;
+ return nullptr;
}
extern "C" const char* shib_set_server_string_slot(cmd_parms* parms, void*, const char* arg)
char* base=(char*)ap_get_module_config(parms->server->module_config,&mod_shib);
size_t offset=(size_t)parms->info;
*((char**)(base + offset))=ap_pstrdup(parms->pool,arg);
- return NULL;
+ return nullptr;
}
extern "C" const char* shib_ap_set_file_slot(cmd_parms* parms,
if (!dc->tSettings)
dc->tSettings = ap_make_table(parms->pool, 4);
ap_table_set(dc->tSettings, arg1, arg2);
- return NULL;
+ return nullptr;
}
/********************************************************************************/
if (m_rc && m_rc->env)
hdr = ap_table_get(m_rc->env, name);
else
- hdr = NULL;
+ hdr = nullptr;
return string(hdr ? hdr : "");
}
return getHeader(name);
}
void setRemoteUser(const char* user) {
- SH_AP_USER(m_req) = user ? ap_pstrdup(m_req->pool, user) : NULL;
+ SH_AP_USER(m_req) = user ? ap_pstrdup(m_req->pool, user) : nullptr;
if (m_dc->bUseHeaders == 1) {
if (user) {
ap_table_set(m_req->headers_in, "REMOTE_USER", user);
void setAuthType(const char* authtype) {
if (authtype && m_dc->bBasicHijack == 1)
authtype = "Basic";
- SH_AP_AUTH_TYPE(m_req) = authtype ? ap_pstrdup(m_req->pool, authtype) : NULL;
+ SH_AP_AUTH_TYPE(m_req) = authtype ? ap_pstrdup(m_req->pool, authtype) : nullptr;
}
string getAuthType() const {
return string(SH_AP_AUTH_TYPE(m_req) ? SH_AP_AUTH_TYPE(m_req) : "");
// Check user authentication and export information, then set the handler bypass
pair<bool,long> res = sta.getServiceProvider().doAuthentication(sta,true);
- apr_pool_userdata_setn((const void*)42,g_UserDataKey,NULL,r->pool);
+ apr_pool_userdata_setn((const void*)42,g_UserDataKey,nullptr,r->pool);
// If directed, install a spoof key to recognize when we've already cleared headers.
if (!g_spoofKey.empty() && (((shib_dir_config*)ap_get_module_config(r->per_dir_config, &mod_shib))->bUseHeaders==1))
ap_table_set(r->headers_in, "Shib-Spoof-Check", g_spoofKey.c_str());
ApacheRequestMapper(const xercesc::DOMElement* e);
~ApacheRequestMapper() { delete m_mapper; delete m_htaccess; delete m_staKey; delete m_propsKey; }
Lockable* lock() { return m_mapper->lock(); }
- void unlock() { m_staKey->setData(NULL); m_propsKey->setData(NULL); m_mapper->unlock(); }
+ void unlock() { m_staKey->setData(nullptr); m_propsKey->setData(nullptr); m_mapper->unlock(); }
Settings getSettings(const HTTPRequest& request) const;
- const PropertySet* getParent() const { return NULL; }
+ const PropertySet* getParent() const { return nullptr; }
void setParent(const PropertySet*) {}
- pair<bool,bool> getBool(const char* name, const char* ns=NULL) const;
- pair<bool,const char*> getString(const char* name, const char* ns=NULL) const;
- pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=NULL) const;
- pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=NULL) const;
- pair<bool,int> getInt(const char* name, const char* ns=NULL) const;
+ pair<bool,bool> getBool(const char* name, const char* ns=nullptr) const;
+ pair<bool,const char*> getString(const char* name, const char* ns=nullptr) const;
+ pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=nullptr) const;
+ pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=nullptr) const;
+ pair<bool,int> getInt(const char* name, const char* ns=nullptr) const;
void getAll(map<string,const char*>& properties) const;
const PropertySet* getPropertySet(const char* name, const char* ns=shibspconstants::ASCII_SHIB2SPCONFIG_NS) const;
const xercesc::DOMElement* getElement() const;
return new ApacheRequestMapper(e);
}
-ApacheRequestMapper::ApacheRequestMapper(const xercesc::DOMElement* e) : m_mapper(NULL), m_staKey(NULL), m_propsKey(NULL), m_htaccess(NULL)
+ApacheRequestMapper::ApacheRequestMapper(const xercesc::DOMElement* e) : m_mapper(nullptr), m_staKey(nullptr), m_propsKey(nullptr), m_htaccess(nullptr)
{
m_mapper=SPConfig::getConfig().RequestMapperManager.newPlugin(XML_REQUEST_MAPPER,e);
m_htaccess=new htAccessControl();
- m_staKey=ThreadKey::create(NULL);
- m_propsKey=ThreadKey::create(NULL);
+ m_staKey=ThreadKey::create(nullptr);
+ m_propsKey=ThreadKey::create(nullptr);
}
RequestMapper::Settings ApacheRequestMapper::getSettings(const HTTPRequest& request) const
return make_pair(true, prop);
}
}
- return s ? s->getString(name,ns) : pair<bool,const char*>(false,NULL);
+ return s ? s->getString(name,ns) : pair<bool,const char*>(false,nullptr);
}
pair<bool,const XMLCh*> ApacheRequestMapper::getXMLString(const char* name, const char* ns) const
{
const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
- return s ? s->getXMLString(name,ns) : pair<bool,const XMLCh*>(false,NULL);
+ return s ? s->getXMLString(name,ns) : pair<bool,const XMLCh*>(false,nullptr);
}
pair<bool,unsigned int> ApacheRequestMapper::getUnsignedInt(const char* name, const char* ns) const
if (sta && !ns) {
// Override Apache-settable int properties.
if (name && !strcmp(name,"redirectToSSL") && sta->m_dc->szRedirectToSSL)
- return pair<bool,unsigned int>(true, strtol(sta->m_dc->szRedirectToSSL, NULL, 10));
+ return pair<bool,unsigned int>(true, strtol(sta->m_dc->szRedirectToSSL, nullptr, 10));
else if (sta->m_dc->tSettings) {
const char* prop = ap_table_get(sta->m_dc->tSettings, name);
if (prop)
const PropertySet* ApacheRequestMapper::getPropertySet(const char* name, const char* ns) const
{
const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
- return s ? s->getPropertySet(name,ns) : NULL;
+ return s ? s->getPropertySet(name,ns) : nullptr;
}
const xercesc::DOMElement* ApacheRequestMapper::getElement() const
{
const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
- return s ? s->getElement() : NULL;
+ return s ? s->getElement() : nullptr;
}
static SH_AP_TABLE* groups_for_user(request_rec* r, const char* user, char* grpfile)
if (ap_pcfg_openfile(&f,r->pool,grpfile) != APR_SUCCESS) {
#endif
ap_log_rerror(APLOG_MARK,APLOG_DEBUG,SH_AP_R(r),"groups_for_user() could not open group file: %s\n",grpfile);
- return NULL;
+ return nullptr;
}
SH_AP_POOL* sp;
if (apr_pool_create(&sp,r->pool) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK,APLOG_ERR,0,r,
"groups_for_user() could not create a subpool");
- return NULL;
+ return nullptr;
}
#endif
}
}
else if (!strcmp(w,"group") && !remote_user.empty()) {
- SH_AP_TABLE* grpstatus=NULL;
+ SH_AP_TABLE* grpstatus=nullptr;
if (sta->m_dc->szAuthGrpFile) {
if (request.isPriorityEnabled(SPRequest::SPDebug))
request.log(SPRequest::SPDebug,string("htaccess plugin using groups file: ") + sta->m_dc->szAuthGrpFile);
pair<multimap<string,const Attribute*>::const_iterator,multimap<string,const Attribute*>::const_iterator> attrs2(attrs);
for (; !status && attrs2.first!=attrs2.second; ++attrs2.first) {
- if (checkAttribute(request, attrs2.first->second, w, regexp ? re.get() : NULL)) {
+ if (checkAttribute(request, attrs2.first->second, w, regexp ? re.get() : nullptr)) {
status = true;
}
}
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r), "shib_fixup(%d): ENTER", (int)getpid());
- if (rc==NULL || rc->env==NULL || ap_is_empty_table(rc->env))
+ if (rc==nullptr || rc->env==nullptr || ap_is_empty_table(rc->env))
return DECLINED;
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r), "shib_fixup adding %d vars", ap_table_elts(rc->env)->nelts);
if (g_Config) {
ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_exit(%d) dealing with g_Config..", (int)getpid());
g_Config->term();
- g_Config = NULL;
+ g_Config = nullptr;
ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_exit() done");
}
}
{
if (g_Config) {
g_Config->term();
- g_Config = NULL;
+ g_Config = nullptr;
}
- ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,NULL,"shib_exit() done");
+ ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,nullptr,"shib_exit() done");
return OK;
}
#endif
}
// Set the cleanup handler
- apr_pool_cleanup_register(p, NULL, &shib_exit, apr_pool_cleanup_null);
+ apr_pool_cleanup_register(p, nullptr, &shib_exit, apr_pool_cleanup_null);
ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() done");
}
#ifdef SHIB_DEFERRED_HEADERS
static void set_output_filter(request_rec *r)
{
- ap_add_output_filter("SHIB_HEADERS_OUT", NULL, r, r->connection);
+ ap_add_output_filter("SHIB_HEADERS_OUT", nullptr, r, r->connection);
}
static void set_error_filter(request_rec *r)
{
- ap_add_output_filter("SHIB_HEADERS_ERR", NULL, r, r->connection);
+ ap_add_output_filter("SHIB_HEADERS_ERR", nullptr, r, r->connection);
}
static int _table_add(void *v, const char *key, const char *value)
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_out_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
// can't use overlap call because it will collapse Set-Cookie headers
//apr_table_overlap(r->headers_out, rc->hdr_out, APR_OVERLAP_TABLES_MERGE);
- apr_table_do(_table_add,r->headers_out, rc->hdr_out,NULL);
+ apr_table_do(_table_add,r->headers_out, rc->hdr_out,nullptr);
}
/* remove ourselves from the filter chain */
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_err_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
// can't use overlap call because it will collapse Set-Cookie headers
//apr_table_overlap(r->err_headers_out, rc->hdr_out, APR_OVERLAP_TABLES_MERGE);
- apr_table_do(_table_add,r->err_headers_out, rc->hdr_out,NULL);
+ apr_table_do(_table_add,r->err_headers_out, rc->hdr_out,nullptr);
}
/* remove ourselves from the filter chain */
(void *) XtOffsetOf (shib_server_config, szScheme),
RSRC_CONF, TAKE1, "URL scheme to force into generated URLs for a vhost"},
- {"ShibRequestSetting", (config_fn_t)shib_table_set, NULL,
+ {"ShibRequestSetting", (config_fn_t)shib_table_set, nullptr,
OR_AUTHCFG, TAKE2, "Set arbitrary Shibboleth request property for content"},
{"ShibDisable", (config_fn_t)ap_set_flag_slot,
(void *) XtOffsetOf (shib_dir_config, bUseHeaders),
OR_AUTHCFG, FLAG, "Export attributes using custom HTTP headers"},
- {NULL}
+ {nullptr}
};
extern "C"{
handler_rec shib_handlers[] = {
{ "shib-handler", shib_handler },
- { NULL }
+ { nullptr }
};
module MODULE_VAR_EXPORT mod_shib = {
STANDARD_MODULE_STUFF,
- NULL, /* initializer */
+ nullptr, /* initializer */
create_shib_dir_config, /* dir config creater */
merge_shib_dir_config, /* dir merger --- default is to override */
create_shib_server_config, /* server config */
merge_shib_server_config, /* merge server config */
shire_cmds, /* command table */
shib_handlers, /* handlers */
- NULL, /* filename translation */
+ nullptr, /* filename translation */
shib_check_user, /* check_user_id */
shib_auth_checker, /* check auth */
- NULL, /* check access */
- NULL, /* type_checker */
+ nullptr, /* check access */
+ nullptr, /* type_checker */
shib_fixups, /* fixups */
- NULL, /* logger */
- NULL, /* header parser */
+ nullptr, /* logger */
+ nullptr, /* header parser */
shib_child_init, /* child_init */
shib_child_exit, /* child_exit */
shib_post_read /* post read-request */
extern "C" void shib_register_hooks (apr_pool_t *p)
{
#ifdef SHIB_DEFERRED_HEADERS
- ap_register_output_filter("SHIB_HEADERS_OUT", do_output_filter, NULL, AP_FTYPE_CONTENT_SET);
- ap_hook_insert_filter(set_output_filter, NULL, NULL, APR_HOOK_LAST);
- ap_register_output_filter("SHIB_HEADERS_ERR", do_error_filter, NULL, AP_FTYPE_CONTENT_SET);
- ap_hook_insert_error_filter(set_error_filter, NULL, NULL, APR_HOOK_LAST);
- ap_hook_post_read_request(shib_post_read, NULL, NULL, APR_HOOK_MIDDLE);
+ ap_register_output_filter("SHIB_HEADERS_OUT", do_output_filter, nullptr, AP_FTYPE_CONTENT_SET);
+ ap_hook_insert_filter(set_output_filter, nullptr, nullptr, APR_HOOK_LAST);
+ ap_register_output_filter("SHIB_HEADERS_ERR", do_error_filter, nullptr, AP_FTYPE_CONTENT_SET);
+ ap_hook_insert_error_filter(set_error_filter, nullptr, nullptr, APR_HOOK_LAST);
+ ap_hook_post_read_request(shib_post_read, nullptr, nullptr, APR_HOOK_MIDDLE);
#endif
- ap_hook_child_init(shib_child_init, NULL, NULL, APR_HOOK_MIDDLE);
- ap_hook_check_user_id(shib_check_user, NULL, NULL, APR_HOOK_MIDDLE);
- ap_hook_auth_checker(shib_auth_checker, NULL, NULL, APR_HOOK_FIRST);
- ap_hook_handler(shib_handler, NULL, NULL, APR_HOOK_LAST);
- ap_hook_fixups(shib_fixups, NULL, NULL, APR_HOOK_MIDDLE);
+ ap_hook_child_init(shib_child_init, nullptr, nullptr, APR_HOOK_MIDDLE);
+ ap_hook_check_user_id(shib_check_user, nullptr, nullptr, APR_HOOK_MIDDLE);
+ ap_hook_auth_checker(shib_auth_checker, nullptr, nullptr, APR_HOOK_FIRST);
+ ap_hook_handler(shib_handler, nullptr, nullptr, APR_HOOK_LAST);
+ ap_hook_fixups(shib_fixups, nullptr, nullptr, APR_HOOK_MIDDLE);
}
// SHIB Module commands
(void *) offsetof (shib_server_config, szScheme),
RSRC_CONF, "URL scheme to force into generated URLs for a vhost"),
- AP_INIT_TAKE2("ShibRequestSetting", (config_fn_t)shib_table_set, NULL,
+ AP_INIT_TAKE2("ShibRequestSetting", (config_fn_t)shib_table_set, nullptr,
OR_AUTHCFG, "Set arbitrary Shibboleth request property for content"),
AP_INIT_FLAG("ShibDisable", (config_fn_t)ap_set_flag_slot,
(void *) offsetof (shib_dir_config, bUseHeaders),
OR_AUTHCFG, "Export attributes using custom HTTP headers"),
- {NULL}
+ {nullptr}
};
module AP_MODULE_DECLARE_DATA mod_shib = {
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{D243B43E-728E-4F32-BDFF-B3A897037C6D}</ProjectGuid>\r
+ <ProjectName>mod_shib_13</ProjectName>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\Release/mod_shib13.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>..;\Apache\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;EAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <CompileAs>Default</CompileAs>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;ApacheCore.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\Apache\libexec;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\Release/mod_shib13.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>..;\Apache\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;EAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <CompileAs>Default</CompileAs>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;ApacheCore.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\Apache\libexec;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ProgramDatabaseFile>.\Release/mod_shib_13.pdb</ProgramDatabaseFile>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\Debug/mod_shib13.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..;\Apache\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;EAPI;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <CompileAs>Default</CompileAs>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;ApacheCore.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\Apache\libexec;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\Debug/mod_shib13.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..;\Apache\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;EAPI;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <CompileAs>Default</CompileAs>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;ApacheCore.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\Apache\libexec;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="mod_apache.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
+ <ClCompile Include="mod_shib_13.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="mod_shib_13.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{68E9568B-476C-4289-B93C-893432378ADC}</ProjectGuid>\r
+ <ProjectName>mod_shib_20</ProjectName>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib20___Win32_Release/mod_shib20.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>..;\Apache2.0.63\Apache2\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <CompileAs>Default</CompileAs>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;libapr.lib;libaprutil.lib;libhttpd.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\Apache2.0.63\Apache2\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib20___Win32_Release/mod_shib20.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>..;\Apache2.0.63\Apache2\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <CompileAs>Default</CompileAs>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;libapr.lib;libaprutil.lib;libhttpd.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\Apache2.0.63\Apache2\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ProgramDatabaseFile>.\mod_shib20___Win32_Release/mod_shib_20.pdb</ProgramDatabaseFile>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib20___Win32_Debug/mod_shib20.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..;\Apache2.0.63\Apache2\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <CompileAs>Default</CompileAs>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;libapr.lib;libaprutil.lib;libhttpd.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\Apache2.0.63\Apache2\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib20___Win32_Debug/mod_shib20.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..;\Apache2.0.63\Apache2\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <CompileAs>Default</CompileAs>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;libapr.lib;libaprutil.lib;libhttpd.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\Apache2.0.63\Apache2\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="mod_apache.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
+ <ClCompile Include="mod_shib_20.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="mod_shib_20.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{B44C0852-83B8-4FB2-A86E-097C9C8256D0}</ProjectGuid>\r
+ <ProjectName>mod_shib_22</ProjectName>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib22___Win32_Release/mod_shib22.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>..;\Apache2.2.14\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling-lite1.lib;libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\Apache2.2.14\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ <Bscmake>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ </Bscmake>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib22___Win32_Release/mod_shib22.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>..;\httpd-2.2-x64\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling-lite1.lib;libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);C:\httpd-2.2-x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ <Bscmake>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ </Bscmake>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib22___Win32_Debug/mod_shib22.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..;\Apache2.2.14\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling-lite1D.lib;libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\Apache2.2.14\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ <Bscmake>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ </Bscmake>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\mod_shib22___Win32_Debug/mod_shib22.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..;\httpd-2.2-x64\include;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling-lite1D.lib;libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);C:\httpd-2.2-x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ <Bscmake>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ </Bscmake>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="mod_apache.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
+ <ClCompile Include="mod_shib_22.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="mod_shib_22.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
EXTRA_DIST = \
shibauthorizer.cpp \
- shibauthorizer.vcproj \
+ shibauthorizer.vcxproj \
shibauthorizer.rc \
shibresponder.cpp \
- shibresponder.vcproj \
+ shibresponder.vcxproj \
shibresponder.rc \
resource.h
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
public:
map<string,string> m_request_headers;
- ShibTargetFCGIAuth(FCGX_Request* req, const char* scheme=NULL, const char* hostname=NULL, int port=0)
+ ShibTargetFCGIAuth(FCGX_Request* req, const char* scheme=nullptr, const char* hostname=nullptr, int port=0)
: AbstractSPRequest(SHIBSP_LOGCAT".FastCGI"), m_req(req) {
const char* server_name_str = hostname;
if (!server_name_str || !*server_name_str)
}
try {
- if (!g_Config->instantiate(NULL, true))
+ if (!g_Config->instantiate(nullptr, true))
throw runtime_error("unknown error");
}
catch (exception& ex) {
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{8CF7DDFA-EAA0-416E-853E-3DCB210C4AE0}</ProjectGuid>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <TypeLibraryName>.\shibauthorizer___Win32_Release/shibauthorizer.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling1.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\shibauthorizer___Win32_Release/shibauthorizer.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling1.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ProgramDatabaseFile>.\shibauthorizer___Win32_Release/shibauthorizer.pdb</ProgramDatabaseFile>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <TypeLibraryName>.\shibauthorizer___Win32_Debug/shibauthorizer.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling1D.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\shibauthorizer___Win32_Debug/shibauthorizer.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling1D.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="shibauthorizer.cpp">\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ClCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibauthorizer.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
string m_scheme,m_hostname;
public:
- ShibTargetFCGI(FCGX_Request* req, char* post_data, const char* scheme=NULL, const char* hostname=NULL, int port=0)
+ ShibTargetFCGI(FCGX_Request* req, char* post_data, const char* scheme=nullptr, const char* hostname=nullptr, int port=0)
: AbstractSPRequest(SHIBSP_LOGCAT".FastCGI"), m_req(req), m_body(post_data) {
const char* server_name_str = hostname;
}
try {
- if (!g_Config->instantiate(NULL, true))
+ if (!g_Config->instantiate(nullptr, true))
throw runtime_error("unknown error");
}
catch (exception& ex) {
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{B2423DCE-048D-4BAA-9AB9-F5D1FCDD3D25}</ProjectGuid>\r
+ <RootNamespace>shibresponder</RootNamespace>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <TypeLibraryName>.\shibresponder___Win32_Release/shibresponder.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling1.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\shibresponder___Win32_Release/shibresponder.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling1.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ProgramDatabaseFile>.\shibresponder___Win32_Release/shibresponder.pdb</ProgramDatabaseFile>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <TypeLibraryName>.\shibresponder___Win32_Debug/shibresponder.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling1D.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\shibresponder___Win32_Debug/shibresponder.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling1D.lib;libfcgi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);\fcgi-2.4.0-VC9\Win32\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="shibresponder.cpp">\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ClCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibresponder.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* isapi_shib.cpp
*
- * Shibboleth ISAPI filter
+ * Shibboleth ISAPI filter.
*/
#define SHIBSP_LITE
struct site_t {
site_t(const DOMElement* e)
{
- auto_ptr_char n(e->getAttributeNS(NULL,name));
- auto_ptr_char s(e->getAttributeNS(NULL,scheme));
- auto_ptr_char p(e->getAttributeNS(NULL,port));
- auto_ptr_char p2(e->getAttributeNS(NULL,sslport));
+ auto_ptr_char n(e->getAttributeNS(nullptr,name));
+ auto_ptr_char s(e->getAttributeNS(nullptr,scheme));
+ auto_ptr_char p(e->getAttributeNS(nullptr,port));
+ auto_ptr_char p2(e->getAttributeNS(nullptr,sslport));
if (n.get()) m_name=n.get();
if (s.get()) m_scheme=s.get();
if (p.get()) m_port=p.get();
};
HINSTANCE g_hinstDLL;
- SPConfig* g_Config = NULL;
+ SPConfig* g_Config = nullptr;
map<string,site_t> g_Sites;
bool g_bNormalizeRequest = true;
string g_unsetHeaderValue,g_spoofKey;
PSID lpUserSid,
LPCSTR message)
{
- LPCSTR messages[] = {message, NULL};
+ LPCSTR messages[] = {message, nullptr};
HANDLE hElog = RegisterEventSource(lpUNCServerName, "Shibboleth ISAPI Filter");
- BOOL res = ReportEvent(hElog, wType, 0, dwEventID, lpUserSid, 1, 0, messages, NULL);
+ BOOL res = ReportEvent(hElog, wType, 0, dwEventID, lpUserSid, 1, 0, messages, nullptr);
return (DeregisterEventSource(hElog) && res);
}
return FALSE;
if (!g_Config) {
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL,
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr,
"Extension mode startup not possible, is the DLL loaded as a filter?");
return FALSE;
}
if (!pVer)
return FALSE;
else if (g_Config) {
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL,
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr,
"Reentrant filter initialization, ignoring...");
return TRUE;
}
SPConfig::Handlers
);
if (!g_Config->init()) {
- g_Config=NULL;
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL,
+ g_Config=nullptr;
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr,
"Filter startup failed during library initialization, check native log for help.");
return FALSE;
}
try {
- if (!g_Config->instantiate(NULL, true))
+ if (!g_Config->instantiate(nullptr, true))
throw runtime_error("unknown error");
}
catch (exception& ex) {
g_Config->term();
- g_Config=NULL;
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, ex.what());
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL,
+ g_Config=nullptr;
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, ex.what());
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr,
"Filter startup failed to load configuration, check native log for details.");
return FALSE;
}
}
else {
_set_invalid_parameter_handler(old);
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL,
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr,
"Filter failed to generate a random anti-spoofing key (if this is Windows 2000 set one manually).");
locker.assign(); // pops lock on SP config
g_Config->term();
- g_Config=NULL;
+ g_Config=nullptr;
return FALSE;
}
}
g_bSafeHeaderNames = flag.first && flag.second;
const DOMElement* child = XMLHelper::getFirstChildElement(props->getElement(),Site);
while (child) {
- auto_ptr_char id(child->getAttributeNS(NULL,id));
+ auto_ptr_char id(child->getAttributeNS(nullptr,id));
if (id.get())
g_Sites.insert(pair<string,site_t>(id.get(),site_t(child)));
child=XMLHelper::getNextSiblingElement(child,Site);
SF_NOTIFY_NONSECURE_PORT |
SF_NOTIFY_PREPROC_HEADERS |
SF_NOTIFY_LOG);
- LogEvent(NULL, EVENTLOG_INFORMATION_TYPE, 7701, NULL, "Filter initialized...");
+ LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, 7701, nullptr, "Filter initialized...");
return TRUE;
}
{
if (g_Config)
g_Config->term();
- g_Config = NULL;
- LogEvent(NULL, EVENTLOG_INFORMATION_TYPE, 7701, NULL, "Filter shut down...");
+ g_Config = nullptr;
+ LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, 7701, nullptr, "Filter shut down...");
return TRUE;
}
class dynabuf
{
public:
- dynabuf() { bufptr=NULL; buflen=0; }
+ dynabuf() { bufptr=nullptr; buflen=0; }
dynabuf(size_t s) { bufptr=new char[buflen=s]; *bufptr=0; }
~dynabuf() { delete[] bufptr; }
size_t length() const { return bufptr ? strlen(bufptr) : 0; }
bool dynabuf::operator==(const char* s) const
{
- if (buflen==NULL || s==NULL)
- return (buflen==NULL && s==NULL);
+ if (buflen==0 || s==nullptr)
+ return (buflen==0 && s==nullptr);
else
return strcmp(bufptr,s)==0;
}
}
const char* getQueryString() const {
const char* uri = getRequestURI();
- uri = (uri ? strchr(uri, '?') : NULL);
- return uri ? (uri + 1) : NULL;
+ uri = (uri ? strchr(uri, '?') : nullptr);
+ return uri ? (uri + 1) : nullptr;
}
const char* getMethod() const {
if (m_method.empty()) {
void log(SPLogLevel level, const string& msg) {
AbstractSPRequest::log(level,msg);
if (level >= SPCrit)
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, msg.c_str());
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, msg.c_str());
}
string makeSafeHeader(const char* rawname) const {
string hdr;
void setRemoteUser(const char* user) {
setHeader("remote-user", user);
if (!user || !*user)
- m_pfc->pFilterContext = NULL;
- else if (m_pfc->pFilterContext = m_pfc->AllocMem(m_pfc, sizeof(char) * (strlen(user) + 1), NULL))
+ m_pfc->pFilterContext = nullptr;
+ else if (m_pfc->pFilterContext = m_pfc->AllocMem(m_pfc, sizeof(char) * (strlen(user) + 1), 0))
strcpy(reinterpret_cast<char*>(m_pfc->pFilterContext), user);
}
string getRemoteUser() const {
DWORD WriteClientError(PHTTP_FILTER_CONTEXT pfc, const char* msg)
{
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, msg);
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, msg);
static const char* ctype="Connection: close\r\nContent-Type: text/html\r\n\r\n";
pfc->ServerSupportFunction(pfc,SF_REQ_SEND_RESPONSE_HEADER,"200 OK",(DWORD)ctype,0);
static const char* xmsg="<HTML><HEAD><TITLE>Shibboleth Filter Error</TITLE></HEAD><BODY>"
return WriteClientError(pfc,"Shibboleth Filter detected unexpected IIS error.");
}
catch (exception& e) {
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, e.what());
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, e.what());
return WriteClientError(pfc,"Shibboleth Filter caught an exception, check Event Log for details.");
}
catch(...) {
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, "Shibboleth Filter threw an unknown exception.");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "Shibboleth Filter threw an unknown exception.");
if (g_catchAll)
return WriteClientError(pfc,"Shibboleth Filter threw an unknown exception.");
throw;
DWORD WriteClientError(LPEXTENSION_CONTROL_BLOCK lpECB, const char* msg)
{
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, msg);
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, msg);
static const char* ctype="Connection: close\r\nContent-Type: text/html\r\n\r\n";
lpECB->ServerSupportFunction(lpECB->ConnID,HSE_REQ_SEND_RESPONSE_HEADER,"200 OK",0,(LPDWORD)ctype);
static const char* xmsg="<HTML><HEAD><TITLE>Shibboleth Error</TITLE></HEAD><BODY><H1>Shibboleth Error</H1>";
void log(SPLogLevel level, const string& msg) const {
AbstractSPRequest::log(level,msg);
if (level >= SPCrit)
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, msg.c_str());
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, msg.c_str());
}
string getHeader(const char* name) const {
string hdr("HTTP_");
ccex.CertContext.pbCertEncoded = (BYTE*)CertificateBuf;
DWORD dwSize = sizeof(ccex);
- if (m_lpECB->ServerSupportFunction(m_lpECB->ConnID, HSE_REQ_GET_CERT_INFO_EX, (LPVOID)&ccex, (LPDWORD)dwSize, NULL)) {
+ if (m_lpECB->ServerSupportFunction(m_lpECB->ConnID, HSE_REQ_GET_CERT_INFO_EX, (LPVOID)&ccex, (LPDWORD)dwSize, nullptr)) {
if (ccex.CertContext.cbCertEncoded) {
xsecsize_t outlen;
XMLByte* serialized = Base64::encode(reinterpret_cast<XMLByte*>(CertificateBuf), ccex.CertContext.cbCertEncoded, &outlen);
return WriteClientError(lpECB,"Server detected unexpected IIS error.");
}
catch (exception& e) {
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, e.what());
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, e.what());
return WriteClientError(lpECB,"Shibboleth Extension caught an exception, check Event Log for details.");
}
catch(...) {
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, "Shibboleth Extension threw an unknown exception.");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "Shibboleth Extension threw an unknown exception.");
if (g_catchAll)
return WriteClientError(lpECB,"Shibboleth Extension threw an unknown exception.");
throw;
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{87C25D4E-8D19-4513-B0BA-BC668BC2DEE3}</ProjectGuid>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\Release/isapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalOptions>/export:GetExtensionVersion /export:GetFilterVersion /export:TerminateExtension /export:TerminateFilter /export:HttpFilterProc /export:HttpExtensionProc %(AdditionalOptions)</AdditionalOptions>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\Release/isapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalOptions>/export:GetExtensionVersion /export:GetFilterVersion /export:TerminateExtension /export:TerminateFilter /export:HttpFilterProc /export:HttpExtensionProc %(AdditionalOptions)</AdditionalOptions>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling-lite1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ProgramDatabaseFile>.\Release/isapi_shib.pdb</ProgramDatabaseFile>\r
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\Debug/isapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalOptions>/export:GetExtensionVersion /export:GetFilterVersion /export:TerminateExtension /export:TerminateFilter /export:HttpFilterProc /export:HttpExtensionProc %(AdditionalOptions)</AdditionalOptions>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\Debug/isapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalOptions>/export:GetExtensionVersion /export:GetFilterVersion /export:TerminateExtension /export:TerminateFilter /export:HttpFilterProc /export:HttpExtensionProc %(AdditionalOptions)</AdditionalOptions>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling-lite1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="isapi_shib.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="isapi_shib.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/.deps
/Makefile.in
/Makefile
+/x64
install-exec-hook:
for la in $(plugin_LTLIBRARIES) ; do rm -f $(DESTDIR)$(plugindir)/$$la ; done
-EXTRA_DIST = memcache-store.vcproj memcache-store.rc resource.h
+EXTRA_DIST = memcache-store.vcxproj memcache-store.rc resource.h
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* memcache-store.cpp
*
- * Storage Service using memcache (pre memcache tags)
+ * Storage Service using memcache (pre memcache tags).
*/
#if defined (_MSC_VER) || defined(__BORLANDC__)
~MemcacheStorageService();
bool createString(const char* context, const char* key, const char* value, time_t expiration);
- int readString(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0);
- int updateString(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0);
+ int readString(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0);
+ int updateString(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0);
bool deleteString(const char* context, const char* key);
bool createText(const char* context, const char* key, const char* value, time_t expiration) {
return createString(context, key, value, expiration);
}
- int readText(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0) {
+ int readText(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0) {
return readString(context, key, pvalue, pexpiration, version);
}
- int updateText(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0) {
+ int updateText(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0) {
return updateString(context, key, value, expiration, version);
}
bool deleteText(const char* context, const char* key) {
MemcacheBase::MemcacheBase(const DOMElement* e) : m_root(e), log(Category::getInstance("XMLTooling.MemcacheBase")), m_prefix("") {
- auto_ptr_char p(e ? e->getAttributeNS(NULL,prefix) : NULL);
+ auto_ptr_char p(e ? e->getAttributeNS(nullptr,prefix) : nullptr);
if (p.get() && *p.get()) {
log.debug("INIT: GOT key prefix: %s", p.get());
m_prefix = p.get();
m_lock = Mutex::create();
log.debug("Lock created");
- memc = memcached_create(NULL);
- if (memc == NULL) {
+ memc = memcached_create(nullptr);
+ if (memc == nullptr) {
throw XMLToolingException("MemcacheBase::Memcache(): memcached_create() failed");
}
log.debug("CRC hash set");
int32_t send_timeout = 999999;
- const XMLCh* tag = e ? e->getAttributeNS(NULL, sendTimeout) : NULL;
+ const XMLCh* tag = e ? e->getAttributeNS(nullptr, sendTimeout) : nullptr;
if (tag && *tag) {
send_timeout = XMLString::parseInt(tag);
}
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SND_TIMEOUT, send_timeout);
int32_t recv_timeout = 999999;
- tag = e ? e->getAttributeNS(NULL, sendTimeout) : NULL;
+ tag = e ? e->getAttributeNS(nullptr, sendTimeout) : nullptr;
if (tag && *tag) {
recv_timeout = XMLString::parseInt(tag);
}
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RCV_TIMEOUT, recv_timeout);
int32_t poll_timeout = 1000;
- tag = e ? e->getAttributeNS(NULL, pollTimeout) : NULL;
+ tag = e ? e->getAttributeNS(nullptr, pollTimeout) : nullptr;
if (tag && *tag) {
poll_timeout = XMLString::parseInt(tag);
}
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, poll_timeout);
int32_t fail_limit = 5;
- tag = e ? e->getAttributeNS(NULL, failLimit) : NULL;
+ tag = e ? e->getAttributeNS(nullptr, failLimit) : nullptr;
if (tag && *tag) {
fail_limit = XMLString::parseInt(tag);
}
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT, fail_limit);
int32_t retry_timeout = 30;
- tag = e ? e->getAttributeNS(NULL, retryTimeout) : NULL;
+ tag = e ? e->getAttributeNS(nullptr, retryTimeout) : nullptr;
if (tag && *tag) {
retry_timeout = XMLString::parseInt(tag);
}
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, retry_timeout);
int32_t nonblock_set = 1;
- tag = e ? e->getAttributeNS(NULL, nonBlocking) : NULL;
+ tag = e ? e->getAttributeNS(nullptr, nonBlocking) : nullptr;
if (tag && *tag) {
nonblock_set = XMLString::parseInt(tag);
}
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, nonblock_set);
// Grab hosts from the configuration.
- e = e ? XMLHelper::getFirstChildElement(e,Hosts) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e,Hosts) : nullptr;
if (!e || !e->hasChildNodes()) {
throw XMLToolingException("Memcache StorageService requires Hosts element in configuration.");
}
MemcacheStorageService::MemcacheStorageService(const DOMElement* e)
: MemcacheBase(e), m_log(Category::getInstance("XMLTooling.MemcacheStorageService")), m_buildMap(false) {
- const XMLCh* tag=e ? e->getAttributeNS(NULL,buildMap) : NULL;
+ const XMLCh* tag=e ? e->getAttributeNS(nullptr,buildMap) : nullptr;
if (tag && *tag && XMLString::parseInt(tag) != 0) {
m_buildMap = true;
m_log.debug("Cache built with buildMap ON");
log.debug("updateString ctx: %s - key: %s", context, key);
time_t final_exp = expiration;
- time_t *want_expiration = NULL;
+ time_t *want_expiration = nullptr;
if (! final_exp) {
want_expiration = &final_exp;
}
- int read_res = readString(context, key, NULL, want_expiration, version);
+ int read_res = readString(context, key, nullptr, want_expiration, version);
if (!read_res) {
// not found
// Update expiration times
string value;
- int read_res = readString(context, iter->c_str(), &value, NULL, 0);
+ int read_res = readString(context, iter->c_str(), &value, nullptr, 0);
if (!read_res) {
// not found
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{666A63A7-983F-4C19-8411-207F24305198}</ProjectGuid>\r
+ <RootNamespace>memcachestore</RootNamespace>\r
+ <Keyword>Win32Proj</Keyword>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;..\..\..\libmemcached;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling1D.lib;memcached.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);..\..\..\libmemcached\visualc\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..\..\cpp-xmltooling;..\..\..\libmemcached\visualc\toolset;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;..\..\..\libmemcached;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling1.lib;memcached.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);..\..\..\libmemcached\visualc\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>..\..\cpp-xmltooling;..\..\..\libmemcached\visualc\toolset;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="memcache-store.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="memcache-store.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f6}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
endif
-EXTRA_DIST = nsapi_shib.vcproj resource.h nsapi_shib.rc nsapi_shib.cpp
+EXTRA_DIST = nsapi_shib.vcxproj resource.h nsapi_shib.rc nsapi_shib.cpp
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* nsapi_shib.cpp
*
- * Shibboleth NSAPI filter
+ * Shibboleth NSAPI filter.
*/
#define SHIBSP_LITE
if (IO_ERROR==net_write(sn->csd,str,strlen(str))) return REQ_EXIT
namespace {
- SPConfig* g_Config=NULL;
+ SPConfig* g_Config=nullptr;
string g_ServerName;
string g_unsetHeaderValue;
string g_spoofKey;
{
if (g_Config)
g_Config->term();
- g_Config = NULL;
+ g_Config = nullptr;
}
extern "C" NSAPI_PUBLIC int nsapi_shib_init(pblock* pb, ::Session* sn, Request* rq)
SPConfig::Handlers
);
if (!g_Config->init(schemadir,prefix)) {
- g_Config=NULL;
+ g_Config=nullptr;
pblock_nvinsert("error","unable to initialize Shibboleth libraries",pb);
return REQ_ABORTED;
}
catch (exception& ex) {
pblock_nvinsert("error",ex.what(),pb);
g_Config->term();
- g_Config=NULL;
+ g_Config=nullptr;
return REQ_ABORTED;
}
- daemon_atrestart(nsapi_shib_exit,NULL);
+ daemon_atrestart(nsapi_shib_exit,nullptr);
ServiceProvider* sp=g_Config->getServiceProvider();
Locker locker(sp);
pblock_nvinsert("error", "module failed to generate a random anti-spoofing key (if this is Windows 2000 set one manually)", pb);
locker.assign(); // pops lock on SP config
g_Config->term();
- g_Config=NULL;
+ g_Config=nullptr;
return REQ_ABORTED;
}
}
return pblock_findval("method", m_rq->reqpb);
}
string getContentType() const {
- char* content_type = NULL;
+ char* content_type = nullptr;
if (request_header("content-type", &content_type, m_sn, m_rq) != REQ_PROCEED)
return "";
return content_type ? content_type : "";
long getContentLength() const {
if (m_gotBody)
return m_body.length();
- char* content_length=NULL;
+ char* content_length=nullptr;
if (request_header("content-length", &content_length, m_sn, m_rq) != REQ_PROCEED)
return 0;
return content_length ? atoi(content_length) : 0;
const char* getRequestBody() const {
if (m_gotBody)
return m_body.c_str();
- char* content_length=NULL;
+ char* content_length=nullptr;
if (request_header("content-length", &content_length, m_sn, m_rq) != REQ_PROCEED || !content_length) {
m_gotBody = true;
- return NULL;
+ return nullptr;
}
else if (atoi(content_length) > 1024*1024) // 1MB?
throw opensaml::SecurityPolicyException("Blocked request body exceeding 1M size limit.");
}
string getHeader(const char* name) const {
// NSAPI headers tend to be lower case. We'll special case "cookie" since it's used a lot.
- char* hdr = NULL;
+ char* hdr = nullptr;
int cookie = strcmp(name, "Cookie");
if (cookie == 0)
name = "cookie";
}
pblock_nvinsert("connection","close",m_rq->srvhdrs);
pblock_nninsert("content-length", msg.length(), m_rq->srvhdrs);
- protocol_status(m_sn, m_rq, status, NULL);
+ protocol_status(m_sn, m_rq, status, nullptr);
protocol_start_response(m_sn, m_rq);
net_write(m_sn->csd,const_cast<char*>(msg.c_str()),msg.length());
return REQ_EXIT;
pblock_nvinsert("cache-control", "private,no-store,no-cache", m_rq->srvhdrs);
pblock_nvinsert("location", url, m_rq->srvhdrs);
pblock_nvinsert("connection","close",m_rq->srvhdrs);
- protocol_status(m_sn, m_rq, PROTOCOL_REDIRECT, NULL);
+ protocol_status(m_sn, m_rq, PROTOCOL_REDIRECT, nullptr);
protocol_start_response(m_sn, m_rq);
return REQ_ABORTED;
}
SunRequestMapper(const xercesc::DOMElement* e);
~SunRequestMapper() { delete m_mapper; delete m_stKey; delete m_propsKey; }
Lockable* lock() { return m_mapper->lock(); }
- void unlock() { m_stKey->setData(NULL); m_propsKey->setData(NULL); m_mapper->unlock(); }
+ void unlock() { m_stKey->setData(nullptr); m_propsKey->setData(nullptr); m_mapper->unlock(); }
Settings getSettings(const HTTPRequest& request) const;
- const PropertySet* getParent() const { return NULL; }
+ const PropertySet* getParent() const { return nullptr; }
void setParent(const PropertySet*) {}
- pair<bool,bool> getBool(const char* name, const char* ns=NULL) const;
- pair<bool,const char*> getString(const char* name, const char* ns=NULL) const;
- pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=NULL) const;
- pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=NULL) const;
- pair<bool,int> getInt(const char* name, const char* ns=NULL) const;
+ pair<bool,bool> getBool(const char* name, const char* ns=nullptr) const;
+ pair<bool,const char*> getString(const char* name, const char* ns=nullptr) const;
+ pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=nullptr) const;
+ pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=nullptr) const;
+ pair<bool,int> getInt(const char* name, const char* ns=nullptr) const;
void getAll(map<string,const char*>& properties) const;
const PropertySet* getPropertySet(const char* name, const char* ns=shibspconstants::ASCII_SHIB2SPCONFIG_NS) const;
const xercesc::DOMElement* getElement() const;
return new SunRequestMapper(e);
}
-SunRequestMapper::SunRequestMapper(const xercesc::DOMElement* e) : m_mapper(NULL), m_stKey(NULL), m_propsKey(NULL)
+SunRequestMapper::SunRequestMapper(const xercesc::DOMElement* e) : m_mapper(nullptr), m_stKey(nullptr), m_propsKey(nullptr)
{
m_mapper = SPConfig::getConfig().RequestMapperManager.newPlugin(XML_REQUEST_MAPPER,e);
- m_stKey=ThreadKey::create(NULL);
- m_propsKey=ThreadKey::create(NULL);
+ m_stKey=ThreadKey::create(nullptr);
+ m_propsKey=ThreadKey::create(nullptr);
}
RequestMapper::Settings SunRequestMapper::getSettings(const HTTPRequest& request) const
return make_pair(true,param);
}
}
- return s ? s->getString(name,ns) : pair<bool,const char*>(false,NULL);
+ return s ? s->getString(name,ns) : pair<bool,const char*>(false,nullptr);
}
pair<bool,const XMLCh*> SunRequestMapper::getXMLString(const char* name, const char* ns) const
{
const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
- return s ? s->getXMLString(name,ns) : pair<bool,const XMLCh*>(false,NULL);
+ return s ? s->getXMLString(name,ns) : pair<bool,const XMLCh*>(false,nullptr);
}
pair<bool,unsigned int> SunRequestMapper::getUnsignedInt(const char* name, const char* ns) const
// Override int properties.
const char* param=pblock_findval(name,stn->m_pb);
if (param)
- return pair<bool,unsigned int>(true,strtol(param,NULL,10));
+ return pair<bool,unsigned int>(true,strtol(param,nullptr,10));
}
return s ? s->getUnsignedInt(name,ns) : pair<bool,unsigned int>(false,0);
}
const PropertySet* SunRequestMapper::getPropertySet(const char* name, const char* ns) const
{
const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
- return s ? s->getPropertySet(name,ns) : NULL;
+ return s ? s->getPropertySet(name,ns) : nullptr;
}
const xercesc::DOMElement* SunRequestMapper::getElement() const
{
const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
- return s ? s->getElement() : NULL;
+ return s ? s->getElement() : nullptr;
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{1396D80A-8672-4224-9B02-95F3F4207CDB}</ProjectGuid>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\Release/nsapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <CompileAs>Default</CompileAs>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling-lite1.lib;ns-httpd30.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\Release/nsapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <CompileAs>Default</CompileAs>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3.lib;xmltooling-lite1.lib;ns-httpd30.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ProgramDatabaseFile>.\Release/nsapi_shib.pdb</ProgramDatabaseFile>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>Win32</TargetEnvironment>\r
+ <TypeLibraryName>.\Debug/nsapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <CompileAs>Default</CompileAs>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling-lite1D.lib;ns-httpd30.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MkTypLibCompatible>true</MkTypLibCompatible>\r
+ <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <TypeLibraryName>.\Debug/nsapi_shib.tlb</TypeLibraryName>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <CompileAs>Default</CompileAs>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>xerces-c_3D.lib;xmltooling-lite1D.lib;ns-httpd30.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="nsapi_shib.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="nsapi_shib.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp-lite.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f7}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
install-exec-hook:
for la in $(plugin_LTLIBRARIES) ; do rm -f $(DESTDIR)$(plugindir)/$$la ; done
-EXTRA_DIST = odbc-store.vcproj odbc-store.rc resource.h
+EXTRA_DIST = odbc-store.vcxproj odbc-store.rc resource.h
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/* table definitions
CREATE TABLE version (
- major int NOT NULL,
- minor int NOT NULL
+ major int NOT nullptr,
+ minor int NOT nullptr
)
CREATE TABLE strings (
~ODBCConn() {
SQLRETURN sr = SQL_SUCCESS;
if (!autoCommit)
- sr = SQLSetConnectAttr(handle, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, NULL);
+ sr = SQLSetConnectAttr(handle, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, 0);
SQLDisconnect(handle);
SQLFreeHandle(SQL_HANDLE_DBC,handle);
if (!SQL_SUCCEEDED(sr))
bool createString(const char* context, const char* key, const char* value, time_t expiration) {
return createRow(STRING_TABLE, context, key, value, expiration);
}
- int readString(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0) {
+ int readString(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0) {
return readRow(STRING_TABLE, context, key, pvalue, pexpiration, version, false);
}
- int updateString(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0) {
+ int updateString(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0) {
return updateRow(STRING_TABLE, context, key, value, expiration, version);
}
bool deleteString(const char* context, const char* key) {
bool createText(const char* context, const char* key, const char* value, time_t expiration) {
return createRow(TEXT_TABLE, context, key, value, expiration);
}
- int readText(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0) {
+ int readText(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0) {
return readRow(TEXT_TABLE, context, key, pvalue, pexpiration, version, true);
}
- int updateText(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0) {
+ int updateText(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0) {
return updateRow(TEXT_TABLE, context, key, value, expiration, version);
}
bool deleteText(const char* context, const char* key) {
SQLHDBC getHDBC();
SQLHSTMT getHSTMT(SQLHDBC);
pair<int,int> getVersion(SQLHDBC);
- pair<bool,bool> log_error(SQLHANDLE handle, SQLSMALLINT htype, const char* checkfor=NULL);
+ pair<bool,bool> log_error(SQLHANDLE handle, SQLSMALLINT htype, const char* checkfor=nullptr);
static void* cleanup_fn(void*);
void cleanup();
};
ODBCStorageService::ODBCStorageService(const DOMElement* e) : m_log(Category::getInstance("XMLTooling.StorageService")),
- m_cleanupInterval(900), shutdown_wait(NULL), cleanup_thread(NULL), shutdown(false), m_henv(SQL_NULL_HANDLE), m_isolation(SQL_TXN_SERIALIZABLE)
+ m_cleanupInterval(900), shutdown_wait(nullptr), cleanup_thread(nullptr), shutdown(false), m_henv(SQL_NULL_HANDLE), m_isolation(SQL_TXN_SERIALIZABLE)
{
#ifdef _DEBUG
xmltooling::NDC ndc("ODBCStorageService");
#endif
- const XMLCh* tag=e ? e->getAttributeNS(NULL,cleanupInterval) : NULL;
+ const XMLCh* tag=e ? e->getAttributeNS(nullptr,cleanupInterval) : nullptr;
if (tag && *tag)
m_cleanupInterval = XMLString::parseInt(tag);
if (!m_cleanupInterval)
m_cleanupInterval = 900;
- auto_ptr_char iso(e ? e->getAttributeNS(NULL,isolationLevel) : NULL);
+ auto_ptr_char iso(e ? e->getAttributeNS(nullptr,isolationLevel) : nullptr);
if (iso.get() && *iso.get()) {
if (!strcmp(iso.get(),"SERIALIZABLE"))
m_isolation = SQL_TXN_SERIALIZABLE;
}
// Grab connection string from the configuration.
- e = e ? XMLHelper::getFirstChildElement(e,ConnectionString) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e,ConnectionString) : nullptr;
if (!e || !e->hasChildNodes()) {
SQLFreeHandle(SQL_HANDLE_ENV, m_henv);
throw XMLToolingException("ODBC StorageService requires ConnectionString element in configuration.");
{
shutdown = true;
shutdown_wait->signal();
- cleanup_thread->join(NULL);
+ cleanup_thread->join(nullptr);
delete shutdown_wait;
if (m_henv != SQL_NULL_HANDLE)
SQLFreeHandle(SQL_HANDLE_ENV, m_henv);
throw IOException("ODBC StorageService failed to allocate a connection handle.");
}
- sr=SQLDriverConnect(handle,NULL,(SQLCHAR*)m_connstring.c_str(),m_connstring.length(),NULL,0,NULL,SQL_DRIVER_NOPROMPT);
+ sr=SQLDriverConnect(handle,nullptr,(SQLCHAR*)m_connstring.c_str(),m_connstring.length(),nullptr,0,nullptr,SQL_DRIVER_NOPROMPT);
if (!SQL_SUCCEEDED(sr)) {
m_log.error("failed to connect to database");
log_error(handle, SQL_HANDLE_DBC);
throw IOException("ODBC StorageService failed to connect to database.");
}
- sr = SQLSetConnectAttr(handle, SQL_ATTR_TXN_ISOLATION, (SQLPOINTER)m_isolation, NULL);
+ sr = SQLSetConnectAttr(handle, SQL_ATTR_TXN_ISOLATION, (SQLPOINTER)m_isolation, 0);
if (!SQL_SUCCEEDED(sr))
throw IOException("ODBC StorageService failed to set transaction isolation level.");
SQLINTEGER major;
SQLINTEGER minor;
- SQLBindCol(stmt,1,SQL_C_SLONG,&major,0,NULL);
- SQLBindCol(stmt,2,SQL_C_SLONG,&minor,0,NULL);
+ SQLBindCol(stmt,1,SQL_C_SLONG,&major,0,nullptr);
+ SQLBindCol(stmt,2,SQL_C_SLONG,&minor,0,nullptr);
if ((sr=SQLFetch(stmt)) != SQL_NO_DATA)
return pair<int,int>(major,minor);
// Prepare and exectute select statement.
char timebuf[32];
- timestampFromTime(time(NULL), timebuf);
+ timestampFromTime(time(nullptr), timebuf);
char *scontext = makeSafeSQL(context);
char *skey = makeSafeSQL(key);
ostringstream q;
if (pexpiration)
q << ",expires";
if (pvalue)
- q << ",CASE version WHEN " << version << " THEN NULL ELSE value END";
+ q << ",CASE version WHEN " << version << " THEN nullptr ELSE value END";
q << " FROM " << table << " WHERE context='" << scontext << "' AND id='" << skey << "' AND expires > " << timebuf;
freeSafeSQL(scontext, context);
freeSafeSQL(skey, key);
SQLSMALLINT ver;
SQL_TIMESTAMP_STRUCT expiration;
- SQLBindCol(stmt,1,SQL_C_SSHORT,&ver,0,NULL);
+ SQLBindCol(stmt,1,SQL_C_SSHORT,&ver,0,nullptr);
if (pexpiration)
- SQLBindCol(stmt,2,SQL_C_TYPE_TIMESTAMP,&expiration,0,NULL);
+ SQLBindCol(stmt,2,SQL_C_TYPE_TIMESTAMP,&expiration,0,nullptr);
if ((sr=SQLFetch(stmt)) == SQL_NO_DATA)
return 0;
// Get statement handle. Disable auto-commit mode to wrap select + update.
ODBCConn conn(getHDBC());
- SQLRETURN sr = SQLSetConnectAttr(conn, SQL_ATTR_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF, NULL);
+ SQLRETURN sr = SQLSetConnectAttr(conn, SQL_ATTR_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF, 0);
if (!SQL_SUCCEEDED(sr))
throw IOException("ODBC StorageService failed to disable auto-commit mode.");
conn.autoCommit = false;
// First, fetch the current version for later, which also ensures the record still exists.
char timebuf[32];
- timestampFromTime(time(NULL), timebuf);
+ timestampFromTime(time(nullptr), timebuf);
char *scontext = makeSafeSQL(context);
char *skey = makeSafeSQL(key);
string q("SELECT version FROM ");
}
SQLSMALLINT ver;
- SQLBindCol(stmt,1,SQL_C_SSHORT,&ver,0,NULL);
+ SQLBindCol(stmt,1,SQL_C_SSHORT,&ver,0,nullptr);
if ((sr=SQLFetch(stmt)) == SQL_NO_DATA) {
freeSafeSQL(scontext, context);
freeSafeSQL(skey, key);
if (shutdown)
break;
try {
- reap(NULL);
+ reap(nullptr);
}
catch (exception& ex) {
m_log.error("cleanup thread swallowed exception: %s", ex.what());
mutex->unlock();
delete mutex;
- Thread::exit(NULL);
+ Thread::exit(nullptr);
}
void* ODBCStorageService::cleanup_fn(void* cache_p)
// Now run the cleanup process.
cache->cleanup();
- return NULL;
+ return nullptr;
}
void ODBCStorageService::updateContext(const char *table, const char* context, time_t expiration)
timestampFromTime(expiration, timebuf);
char nowbuf[32];
- timestampFromTime(time(NULL), nowbuf);
+ timestampFromTime(time(nullptr), nowbuf);
char *scontext = makeSafeSQL(context);
string q("UPDATE ");
// Prepare and execute delete statement.
char nowbuf[32];
- timestampFromTime(time(NULL), nowbuf);
+ timestampFromTime(time(nullptr), nowbuf);
string q;
if (context) {
char *scontext = makeSafeSQL(context);
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{666A63A7-983F-4C19-8411-207F24305197}</ProjectGuid>\r
+ <RootNamespace>odbcstore</RootNamespace>\r
+ <Keyword>Win32Proj</Keyword>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.so</TargetExt>\r
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.so</TargetExt>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="odbc-store.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="odbc-store.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
shibd_LDFLAGS = $(XMLSEC_LIBS)
-EXTRA_DIST = shibd.vcproj shibd_win32.cpp resource.h shibd.rc
+EXTRA_DIST = shibd.vcxproj shibd_win32.cpp resource.h shibd.rc
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
/*
- * shar.cpp -- the shibd "main" code. All the functionality is elsewhere
- *
- * Created By: Derek Atkins <derek@ihtfp.com>
- *
- * $Id: shar.cpp 2164 2007-02-11 05:26:18 +0000 (Sun, 11 Feb 2007) cantor $
+ * shibd.cpp -- the shibd "main" code. All the functionality is elsewhere
*/
using namespace std;
bool shibd_shutdown = false;
-const char* shar_config = NULL;
-const char* shar_schemadir = NULL;
-const char* shar_prefix = NULL;
+const char* shar_config = nullptr;
+const char* shar_schemadir = nullptr;
+const char* shar_prefix = nullptr;
bool shar_checkonly = false;
bool shar_version = false;
static bool unlink_socket = false;
-const char* pidfile = NULL;
+const char* pidfile = nullptr;
#ifdef WIN32
sa.sa_handler = SIG_IGN;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGPIPE, &sa, NULL) < 0) {
+ if (sigaction(SIGPIPE, &sa, nullptr) < 0) {
return -1;
}
sa.sa_handler = term_handler;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGHUP, &sa, NULL) < 0) {
+ if (sigaction(SIGHUP, &sa, nullptr) < 0) {
return -1;
}
- if (sigaction(SIGINT, &sa, NULL) < 0) {
+ if (sigaction(SIGINT, &sa, nullptr) < 0) {
return -1;
}
- if (sigaction(SIGQUIT, &sa, NULL) < 0) {
+ if (sigaction(SIGQUIT, &sa, nullptr) < 0) {
return -1;
}
- if (sigaction(SIGTERM, &sa, NULL) < 0) {
+ if (sigaction(SIGTERM, &sa, nullptr) < 0) {
return -1;
}
memset(&sa, 0, sizeof (sa));
sa.sa_handler = run_handler;
- if (sigaction(SIGUSR1, &sa, NULL) < 0) {
+ if (sigaction(SIGUSR1, &sa, nullptr) < 0) {
return -1;
}
memset(&sa, 0, sizeof (sa));
sa.sa_handler = child_handler;
- if (sigaction(SIGCHLD, &sa, NULL) < 0) {
+ if (sigaction(SIGCHLD, &sa, nullptr) < 0) {
return -1;
}
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{F13141B5-6C87-40BB-8D4E-5CC56EBB4C59}</ProjectGuid>\r
+ <RootNamespace>shibd</RootNamespace>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>wsock32.lib;log4shib1.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>wsock32.lib;log4shib1.lib;xmltooling1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>wsock32.lib;log4shib1D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>wsock32.lib;log4shib1D.lib;xmltooling1D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="resource.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="shibd.cpp" />\r
+ <ClCompile Include="shibd_win32.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibd.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f6}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/*
* shar_win32.cpp -- the SHAR "main" code on Win32
- *
- * Created By: Scott Cantor (cantor.2@osu.edu)
- *
- * $Id: shar_win32.cpp 2150 2007-02-02 04:06:15 +0000 (Fri, 02 Feb 2007) cantor $
*/
#include "config_win32.h"
DWORD dwErr = 0;
BOOL bConsole = FALSE;
char szErr[256];
-LPCSTR lpszInstall = NULL;
-LPCSTR lpszRemove = NULL;
+LPCSTR lpszInstall = nullptr;
+LPCSTR lpszRemove = nullptr;
// internal function prototypes
VOID WINAPI service_ctrl(DWORD dwCtrlCode);
SetConsoleCtrlHandler(&BreakHandler,TRUE);
if ((i=real_main(1))!=0)
{
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, "shibd startup failed, check shibd.log for further details");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "shibd startup failed, check shibd.log for further details");
return i;
}
return real_main(0);
SERVICE_TABLE_ENTRY dispatchTable[] =
{
{ "SHIBD", (LPSERVICE_MAIN_FUNCTION)service_main },
- { NULL, NULL }
+ { nullptr, nullptr }
};
if (!StartServiceCtrlDispatcher(dispatchTable))
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, "StartServiceCtrlDispatcher failed.");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "StartServiceCtrlDispatcher failed.");
return 0;
}
if (real_main(1)!=0)
{
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, "shibd startup failed, check shibd.log for further details");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "shibd startup failed, check shibd.log for further details");
return;
}
- LogEvent(NULL, EVENTLOG_INFORMATION_TYPE, 7700, NULL, "shibd started successfully.");
+ LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, 7700, nullptr, "shibd started successfully.");
if (!ReportStatusToSCMgr(SERVICE_RUNNING, NO_ERROR, 0))
return;
VOID ServiceStop()
{
if (!bConsole)
- LogEvent(NULL, EVENTLOG_INFORMATION_TYPE, 7701, NULL, "shibd stopping...");
+ LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, 7701, nullptr, "shibd stopping...");
shibd_shutdown=true;
}
// Report the status of the service to the service control manager.
//
if (!(fResult = SetServiceStatus(sshStatusHandle, &ssStatus)))
- LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, "SetServiceStatus failed.");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "SetServiceStatus failed.");
}
return fResult;
}
char szPath[256];
- if ( GetModuleFileName( NULL, szPath, 256 ) == 0 )
+ if ( GetModuleFileName( nullptr, szPath, 256 ) == 0 )
{
printf("Unable to install %s - %s\n", name, GetLastErrorText(szErr, 256));
return;
cmd = cmd + " -schemadir " + shar_schemadir;
schSCManager = OpenSCManager(
- NULL, // machine (NULL == local)
- NULL, // database (NULL == default)
+ nullptr, // machine (nullptr == local)
+ nullptr, // database (nullptr == default)
SC_MANAGER_ALL_ACCESS // access required
);
SERVICE_AUTO_START, // start type
SERVICE_ERROR_NORMAL, // error control type
cmd.c_str(), // service's command line
- NULL, // no load ordering group
- NULL, // no tag identifier
- NULL, // dependencies
- NULL, // LocalSystem account
- NULL); // no password
+ nullptr, // no load ordering group
+ nullptr, // no tag identifier
+ nullptr, // dependencies
+ nullptr, // LocalSystem account
+ nullptr); // no password
if ( schService )
{
_snprintf(realName,sizeof(realName),"shibd_%s",name);
schSCManager = OpenSCManager(
- NULL, // machine (NULL == local)
- NULL, // database (NULL == default)
+ nullptr, // machine (nullptr == local)
+ nullptr, // database (nullptr == default)
SC_MANAGER_ALL_ACCESS // access required
);
if ( schSCManager )
LPTSTR GetLastErrorText( LPSTR lpszBuf, DWORD dwSize )
{
DWORD dwRet;
- LPSTR lpszTemp = NULL;
+ LPSTR lpszTemp = nullptr;
dwRet = FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_ARGUMENT_ARRAY,
- NULL,
+ nullptr,
GetLastError(),
LANG_NEUTRAL,
(LPSTR)&lpszTemp,
0,
- NULL );
+ nullptr );
// supplied buffer is not long enough
if ( !dwRet || ( (long)dwSize < (long)dwRet+14 ) )
PSID lpUserSid,
LPCSTR message)
{
- LPCSTR messages[] = {message, NULL};
+ LPCSTR messages[] = {message, nullptr};
HANDLE hElog = RegisterEventSource(lpUNCServerName, "Shibboleth Daemon");
- BOOL res = ReportEvent(hElog, wType, 0, dwEventID, lpUserSid, 1, 0, messages, NULL);
+ BOOL res = ReportEvent(hElog, wType, 0, dwEventID, lpUserSid, 1, 0, messages, nullptr);
return (DeregisterEventSource(hElog) && res);
}
}
AbstractSPRequest::AbstractSPRequest(const char* category)
- : m_sp(NULL), m_mapper(NULL), m_app(NULL), m_sessionTried(false), m_session(NULL),
- m_log(&Category::getInstance(category)), m_parser(NULL)
+ : m_sp(nullptr), m_mapper(nullptr), m_app(nullptr), m_sessionTried(false), m_session(nullptr),
+ m_log(&Category::getInstance(category)), m_parser(nullptr)
{
m_sp=SPConfig::getConfig().getServiceProvider();
m_sp->lock();
}
}
- // The cache will either silently pass a session or NULL back, or throw an exception out.
+ // The cache will either silently pass a session or nullptr back, or throw an exception out.
Session* session = getServiceProvider().getSessionCache()->find(
- getApplication(), *this, ignoreAddress ? NULL : getRemoteAddr().c_str(), checkTimeout ? &timeout : NULL
+ getApplication(), *this, ignoreAddress ? nullptr : getRemoteAddr().c_str(), checkTimeout ? &timeout : nullptr
);
if (cache)
m_session = session;
m_parser=new CGIParser(*this);
pair<CGIParser::walker,CGIParser::walker> bounds=m_parser->getParameters(name);
- return (bounds.first==bounds.second) ? NULL : bounds.first->second;
+ return (bounds.first==bounds.second) ? nullptr : bounds.first->second;
}
vector<const char*>::size_type AbstractSPRequest::getParameters(const char* name, vector<const char*>& values) const
throw ConfigurationException("Target resource was not an absolute URL.");
bool ssl_only=true;
- const char* handler=NULL;
+ const char* handler=nullptr;
const PropertySet* props=getApplication().getPropertySet("Sessions");
if (props) {
pair<bool,bool> p=props->getBool("handlerSSL");
//
// note: if ssl_only is true, make sure the protocol is https
- const char* path = NULL;
+ const char* path = nullptr;
// Decide whether to use the handler or the resource for the "protocol"
const char* prot;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
std::string getRemoteAddr() const;
const char* getParameter(const char* name) const;
std::vector<const char*>::size_type getParameters(const char* name, std::vector<const char*>& values) const;
- const char* getHandlerURL(const char* resource=NULL) const;
+ const char* getHandlerURL(const char* resource=nullptr) const;
void log(SPLogLevel level, const std::string& msg) const;
bool isPriorityEnabled(SPLogLevel level) const;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param lifetime if non-null, will be populated with a suggested lifetime for the cookie, or 0 if session-bound
* @return a pair containing the cookie name and the string to append to the cookie value
*/
- virtual std::pair<std::string,const char*> getCookieNameProps(const char* prefix, time_t* lifetime=NULL) const;
+ virtual std::pair<std::string,const char*> getCookieNameProps(const char* prefix, time_t* lifetime=nullptr) const;
#ifndef SHIBSP_LITE
/**
* Returns a MetadataProvider for use with this Application.
*
* @param required true iff an exception should be thrown if no MetadataProvider is available
- * @return a MetadataProvider instance, or NULL
+ * @return a MetadataProvider instance, or nullptr
*/
virtual opensaml::saml2md::MetadataProvider* getMetadataProvider(bool required=true) const=0;
* Returns a TrustEngine for use with this Application.
*
* @param required true iff an exception should be thrown if no TrustEngine is available
- * @return a TrustEngine instance, or NULL
+ * @return a TrustEngine instance, or nullptr
*/
virtual xmltooling::TrustEngine* getTrustEngine(bool required=true) const=0;
/**
* Returns an AttributeExtractor for use with this Application.
*
- * @return an AttributeExtractor, or NULL
+ * @return an AttributeExtractor, or nullptr
*/
virtual AttributeExtractor* getAttributeExtractor() const=0;
/**
* Returns an AttributeFilter for use with this Application.
*
- * @return an AttributeFilter, or NULL
+ * @return an AttributeFilter, or nullptr
*/
virtual AttributeFilter* getAttributeFilter() const=0;
/**
* Returns an AttributeResolver for use with this Application.
*
- * @return an AttributeResolver, or NULL
+ * @return an AttributeResolver, or nullptr
*/
virtual AttributeResolver* getAttributeResolver() const=0;
/**
* Returns the CredentialResolver instance associated with this Application.
*
- * @return a CredentialResolver, or NULL
+ * @return a CredentialResolver, or nullptr
*/
virtual xmltooling::CredentialResolver* getCredentialResolver() const=0;
* @deprecated
* Returns any additional audience values associated with this Application.
*
- * @return additional audience values associated with the Application, or NULL
+ * @return additional audience values associated with the Application, or nullptr
*/
virtual const std::vector<const XMLCh*>* getAudiences() const=0;
#endif
/**
* Returns the default SessionInitiator when automatically requesting a session.
*
- * @return the default SessionInitiator, or NULL
+ * @return the default SessionInitiator, or nullptr
*/
virtual const SessionInitiator* getDefaultSessionInitiator() const=0;
* Returns a SessionInitiator with a particular ID when automatically requesting a session.
*
* @param id an identifier unique to the Application
- * @return the designated SessionInitiator, or NULL
+ * @return the designated SessionInitiator, or nullptr
*/
virtual const SessionInitiator* getSessionInitiatorById(const char* id) const=0;
* Returns the default AssertionConsumerService Handler
* for use in AuthnRequest messages.
*
- * @return the default AssertionConsumerService, or NULL
+ * @return the default AssertionConsumerService, or nullptr
*/
virtual const Handler* getDefaultAssertionConsumerService() const=0;
* for use in AuthnRequest messages.
*
* @param index an index unique to an application
- * @return the designated AssertionConsumerService, or NULL
+ * @return the designated AssertionConsumerService, or nullptr
*/
virtual const Handler* getAssertionConsumerServiceByIndex(unsigned short index) const=0;
*
* @param path the PATH_INFO appended to the end of a base Handler location
* that invokes the Handler
- * @return the mapped Handler, or NULL
+ * @return the mapped Handler, or nullptr
*/
virtual const Handler* getHandler(const char* path) const=0;
install-exec-hook:
for la in $(lib_LTLIBRARIES) ; do rm -f $(DESTDIR)$(libdir)/$$la ; done
-EXTRA_DIST = shibsp.vcproj shibsp-lite.vcproj paths.h.in resource.h shibsp.rc
+EXTRA_DIST = \
+ shibsp.vcxproj \
+ shibsp-lite.vcxproj \
+ shibsp.vcxproj.filters \
+ shibsp-lite.vcxproj.filters \
+ paths.h.in \
+ resource.h \
+ shibsp.rc
BUILT_SOURCES = paths.h
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return g_config;
}
-SPConfig::SPConfig() : attribute_value_delimeter(';'), m_serviceProvider(NULL),
+SPConfig::SPConfig() : attribute_value_delimeter(';'), m_serviceProvider(nullptr),
#ifndef SHIBSP_LITE
- m_artifactResolver(NULL),
+ m_artifactResolver(nullptr),
#endif
- m_features(0), m_configDoc(NULL)
+ m_features(0), m_configDoc(nullptr)
{
}
if (isEnabled(OutOfProcess))
m_artifactResolver = new ArtifactResolver();
#endif
- srand(static_cast<unsigned int>(std::time(NULL)));
+ srand(static_cast<unsigned int>(std::time(nullptr)));
log.info("%s library initialization complete", PACKAGE_STRING);
return true;
Category& log=Category::getInstance(SHIBSP_LOGCAT".Config");
log.info("%s library shutting down", PACKAGE_STRING);
- setServiceProvider(NULL);
+ setServiceProvider(nullptr);
if (m_configDoc)
m_configDoc->release();
- m_configDoc = NULL;
+ m_configDoc = nullptr;
#ifndef SHIBSP_LITE
- setArtifactResolver(NULL);
+ setArtifactResolver(nullptr);
#endif
ArtifactResolutionServiceManager.deregisterFactories();
dummydoc = XMLToolingConfig::getConfig().getParser().parse(snippet);
XercesJanitor<xercesc::DOMDocument> docjanitor(dummydoc);
static const XMLCh _type[] = UNICODE_LITERAL_4(t,y,p,e);
- auto_ptr_char type(dummydoc->getDocumentElement()->getAttributeNS(NULL,_type));
+ auto_ptr_char type(dummydoc->getDocumentElement()->getAttributeNS(nullptr,_type));
if (type.get() && *type.get())
setServiceProvider(ServiceProviderManager.newPlugin(type.get(), dummydoc->getDocumentElement()));
else
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* @file shibsp/SPConfig.h
*
- * Library configuration
+ * Library configuration.
*/
#ifndef __shibsp_config_h__
* @param inst_prefix installation prefix for software
* @return true iff initialization was successful
*/
- virtual bool init(const char* catalog_path=NULL, const char* inst_prefix=NULL);
+ virtual bool init(const char* catalog_path=nullptr, const char* inst_prefix=nullptr);
/**
* Shuts down library
/**
* Returns the global ServiceProvider instance.
*
- * @return global ServiceProvider or NULL
+ * @return global ServiceProvider or nullptr
*/
ServiceProvider* getServiceProvider() const;
* @param rethrow true iff caught exceptions should be rethrown instead of just returning the status
* @return true iff instantiation was successful
*/
- virtual bool instantiate(const char* config=NULL, bool rethrow=false);
+ virtual bool instantiate(const char* config=nullptr, bool rethrow=false);
#ifndef SHIBSP_LITE
/**
/**
* Returns the global ArtifactResolver instance.
*
- * @return global ArtifactResolver or NULL
+ * @return global ArtifactResolver or nullptr
*/
const opensaml::MessageDecoder::ArtifactResolver* getArtifactResolver() const;
#endif
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param checkTimeout true iff the last-used timestamp should be updated and any timeout policy enforced
* @param ignoreAddress true iff all address checking should be ignored, regardless of policy
* @param cache true iff the request should hold the Session lock itself and unlock during cleanup
- * @return pointer to Session, or NULL
+ * @return pointer to Session, or nullptr
*/
virtual Session* getSession(bool checkTimeout=true, bool ignoreAddress=false, bool cache=true)=0;
* @param resource resource URL to compute handler for
* @return base location of handler
*/
- virtual const char* getHandlerURL(const char* resource=NULL) const=0;
+ virtual const char* getHandlerURL(const char* resource=nullptr) const=0;
/**
* Returns a non-spoofable request header value, if possible.
/**
* Establish REMOTE_USER identity in request.
*
- * @param user REMOTE_USER value to set or NULL to clear
+ * @param user REMOTE_USER value to set or nullptr to clear
*/
virtual void setRemoteUser(const char* user)=0;
/**
* Establish AUTH_TYPE for request.
*
- * @param authtype AUTH_TYPE value to set or NULL to clear
+ * @param authtype AUTH_TYPE value to set or nullptr to clear
*/
virtual void setAuthType(const char* authtype);
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
)
{
// The properties we need can be set in the RequestMap, or the Errors element.
- bool mderror = dynamic_cast<const opensaml::saml2md::MetadataException*>(tp.getRichException())!=NULL;
+ bool mderror = dynamic_cast<const opensaml::saml2md::MetadataException*>(tp.getRichException())!=nullptr;
bool accesserror = (strcmp(page, "access")==0);
- pair<bool,const char*> redirectErrors = pair<bool,const char*>(false,NULL);
- pair<bool,const char*> pathname = pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> redirectErrors = pair<bool,const char*>(false,nullptr);
+ pair<bool,const char*> pathname = pair<bool,const char*>(false,nullptr);
- // Strictly for error handling, detect a NULL application and point at the default.
+ // Strictly for error handling, detect a nullptr application and point at the default.
if (!app)
app = request.getServiceProvider().getApplication("default");
#endif
Category& log = Category::getInstance(SHIBSP_LOGCAT".ServiceProvider");
- const Application* app=NULL;
+ const Application* app=nullptr;
string targetURL = request.getRequestURL();
try {
// Fix for secadv 20050901
clearHeaders(request);
- Session* session = NULL;
+ Session* session = nullptr;
try {
session = request.getSession();
}
catch (exception& e) {
log.warn("error during session lookup: %s", e.what());
// If it's not a retryable session failure, we throw to the outer handler for reporting.
- if (dynamic_cast<opensaml::RetryableProfileException*>(&e)==NULL)
+ if (dynamic_cast<opensaml::RetryableProfileException*>(&e)==nullptr)
throw;
}
return make_pair(true,request.returnOK());
// No session, but we require one. Initiate a new session using the indicated method.
- const SessionInitiator* initiator=NULL;
+ const SessionInitiator* initiator=nullptr;
if (requireSessionWith.first) {
initiator=app->getSessionInitiatorById(requireSessionWith.second);
if (!initiator) {
#endif
Category& log = Category::getInstance(SHIBSP_LOGCAT".ServiceProvider");
- const Application* app=NULL;
+ const Application* app=nullptr;
string targetURL = request.getRequestURL();
try {
// Do we have an access control plugin?
if (settings.second) {
- const Session* session = NULL;
+ const Session* session = nullptr;
try {
session = request.getSession(false);
}
#endif
Category& log = Category::getInstance(SHIBSP_LOGCAT".ServiceProvider");
- const Application* app=NULL;
+ const Application* app=nullptr;
string targetURL = request.getRequestURL();
try {
RequestMapper::Settings settings = request.getRequestSettings();
app = &(request.getApplication());
- const Session* session = NULL;
+ const Session* session = nullptr;
try {
session = request.getSession(false);
}
pair<bool,bool> exp=settings.first->getBool("exportAssertion");
if (exp.first && exp.second) {
const PropertySet* sessions=app->getPropertySet("Sessions");
- pair<bool,const char*> exportLocation = sessions ? sessions->getString("exportLocation") : pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> exportLocation = sessions ? sessions->getString("exportLocation") : pair<bool,const char*>(false,nullptr);
if (!exportLocation.first)
log.warn("can't export assertions without an exportLocation Sessions property");
else {
#endif
Category& log = Category::getInstance(SHIBSP_LOGCAT".ServiceProvider");
- const Application* app=NULL;
+ const Application* app=nullptr;
string targetURL = request.getRequestURL();
try {
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* Returns a StorageService instance based on an ID.
*
- * @param id a NULL-terminated key identifying the StorageService to the configuration
- * @return a StorageService if available, or NULL
+ * @param id a nullptr-terminated key identifying the StorageService to the configuration
+ * @return a StorageService if available, or nullptr
*/
virtual xmltooling::StorageService* getStorageService(const char* id) const=0;
#endif
* Returns an Application instance matching the specified ID.
*
* @param applicationId the ID of the application
- * @return pointer to the application, or NULL
+ * @return pointer to the application, or nullptr
*/
virtual const Application* getApplication(const char* applicationId) const=0;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* Returns an assertion cached by the session.
*
* @param id identifier of the assertion to retrieve
- * @return pointer to assertion, or NULL
+ * @return pointer to assertion, or nullptr
*/
virtual const opensaml::Assertion* getAssertion(const char* id) const=0;
const xmltooling::HTTPRequest& httpRequest,
xmltooling::HTTPResponse& httpResponse,
time_t expires,
- const opensaml::saml2md::EntityDescriptor* issuer=NULL,
- const XMLCh* protocol=NULL,
- const opensaml::saml2::NameID* nameid=NULL,
- const XMLCh* authn_instant=NULL,
- const XMLCh* session_index=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const std::vector<const opensaml::Assertion*>* tokens=NULL,
- const std::vector<Attribute*>* attributes=NULL
+ const opensaml::saml2md::EntityDescriptor* issuer=nullptr,
+ const XMLCh* protocol=nullptr,
+ const opensaml::saml2::NameID* nameid=nullptr,
+ const XMLCh* authn_instant=nullptr,
+ const XMLCh* session_index=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const std::vector<const opensaml::Assertion*>* tokens=nullptr,
+ const std::vector<Attribute*>* attributes=nullptr
)=0;
/**
* @param application reference to Application that owns the Session
* @param request request from client bound to session
* @param client_addr network address of client (if known)
- * @param timeout inactivity timeout to enforce (0 for none, NULL to bypass check/update of last access)
- * @return pointer to locked Session, or NULL
+ * @param timeout inactivity timeout to enforce (0 for none, nullptr to bypass check/update of last access)
+ * @return pointer to locked Session, or nullptr
*/
virtual Session* find(
const Application& application,
const xmltooling::HTTPRequest& request,
- const char* client_addr=NULL,
- time_t* timeout=NULL
+ const char* client_addr=nullptr,
+ time_t* timeout=nullptr
)=0;
/**
* @param application reference to Application that owns the Session
* @param request request from client bound to session
* @param client_addr network address of client (if known)
- * @param timeout inactivity timeout to enforce (0 for none, NULL to bypass check/update of last access)
- * @return pointer to locked Session, or NULL
+ * @param timeout inactivity timeout to enforce (0 for none, nullptr to bypass check/update of last access)
+ * @return pointer to locked Session, or nullptr
*/
virtual Session* find(
const Application& application,
xmltooling::HTTPRequest& request,
- const char* client_addr=NULL,
- time_t* timeout=NULL
+ const char* client_addr=nullptr,
+ time_t* timeout=nullptr
);
/**
* @param request request from client containing session, or a reference to it
* @param response optional response to client enabling removal of session or reference
*/
- virtual void remove(const Application& application, const xmltooling::HTTPRequest& request, xmltooling::HTTPResponse* response=NULL)=0;
+ virtual void remove(const Application& application, const xmltooling::HTTPRequest& request, xmltooling::HTTPResponse* response=nullptr)=0;
};
/** SessionCache implementation backed by a StorageService. */
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param application reference to Application that owns the session(s)
* @param issuer source of session(s)
* @param nameid name identifier associated with the session(s) to terminate
- * @param indexes indexes of sessions, or NULL for all sessions associated with other parameters
+ * @param indexes indexes of sessions, or nullptr for all sessions associated with other parameters
* @param expires logout expiration
* @param sessions on exit, contains the IDs of the matching sessions found
*/
* @param application reference to Application that owns the Session
* @param key session key
* @param client_addr network address of client (if known)
- * @param timeout inactivity timeout to enforce (0 for none, NULL to bypass check/update of last access)
- * @return pointer to locked Session, or NULL
+ * @param timeout inactivity timeout to enforce (0 for none, nullptr to bypass check/update of last access)
+ * @return pointer to locked Session, or nullptr
*/
- virtual Session* find(const Application& application, const char* key, const char* client_addr=NULL, time_t* timeout=NULL)=0;
+ virtual Session* find(const Application& application, const char* key, const char* client_addr=nullptr, time_t* timeout=nullptr)=0;
/**
* Deletes an existing session.
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
}
AttributeDecoder::AttributeDecoder(const DOMElement *e)
- : m_caseSensitive(true), m_internal(false), m_hashAlg(e ? e->getAttributeNS(NULL, hashAlg) : NULL)
+ : m_caseSensitive(true), m_internal(false), m_hashAlg(e ? e->getAttributeNS(nullptr, hashAlg) : nullptr)
{
if (e) {
- const XMLCh* flag = e->getAttributeNS(NULL, caseSensitive);
+ const XMLCh* flag = e->getAttributeNS(nullptr, caseSensitive);
if (flag && (*flag == chLatin_f || *flag == chDigit_0))
m_caseSensitive = false;
- flag = e->getAttributeNS(NULL, internal);
+ flag = e->getAttributeNS(nullptr, internal);
if (flag && (*flag == chLatin_t || *flag == chDigit_1))
m_internal = true;
}
newdest.pop_back();
}
delete attr;
- return newdest.empty() ? NULL : simple.release();
+ return newdest.empty() ? nullptr : simple.release();
}
}
const char* Attribute::getScope(size_t index) const
{
- return NULL;
+ return nullptr;
}
void Attribute::removeValue(size_t index)
DDF Attribute::marshall() const
{
- DDF ddf(NULL);
+ DDF ddf(nullptr);
ddf.structure().addmember(m_id.front().c_str()).list();
if (!m_caseSensitive)
ddf.addmember("case_insensitive");
DDF alias;
DDF aliases = ddf.addmember("aliases").list();
for (std::vector<std::string>::const_iterator a = m_id.begin() + 1; a != m_id.end(); ++a) {
- alias = DDF(NULL).string(a->c_str());
+ alias = DDF(nullptr).string(a->c_str());
aliases.add(alias);
}
}
* Gets the string equivalent of the value at the specified position (starting from zero).
*
* @param index position of value
- * @return the specified value in its "string" form, or NULL if undefined
+ * @return the specified value in its "string" form, or nullptr if undefined
*/
virtual const char* getString(size_t index) const;
* Gets the "scope" of the value at the specified position (starting from zero).
*
* @param index position of value
- * @return the specified value's "scope", or NULL if attribute is unscoped
+ * @return the specified value's "scope", or nullptr if attribute is unscoped
*/
virtual const char* getScope(size_t index) const;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param xmlObject XMLObject to decode
* @param assertingParty name of the party asserting the attribute
* @param relyingParty name of the party relying on the attribute
- * @return a resolved Attribute, or NULL
+ * @return a resolved Attribute, or nullptr
*/
virtual Attribute* decode(
const std::vector<std::string>& ids,
const xmltooling::XMLObject* xmlObject,
- const char* assertingParty=NULL,
- const char* relyingParty=NULL
+ const char* assertingParty=nullptr,
+ const char* relyingParty=nullptr
) const=0;
};
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
~DOMAttributeDecoder() {}
Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
private:
};
DOMAttributeDecoder::DOMAttributeDecoder(const DOMElement* e)
- : AttributeDecoder(e), m_formatter(e ? e->getAttributeNS(NULL,formatter) : NULL)
+ : AttributeDecoder(e), m_formatter(e ? e->getAttributeNS(nullptr,formatter) : nullptr)
{
Category& log = Category::getInstance(SHIBSP_LOGCAT".AttributeDecoder.DOM");
- e = e ? XMLHelper::getFirstChildElement(e, Mapping) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, Mapping) : nullptr;
while (e) {
- if (e->hasAttributeNS(NULL, _from) && e->hasAttributeNS(NULL, _to)) {
- auto_ptr<xmltooling::QName> f(XMLHelper::getNodeValueAsQName(e->getAttributeNodeNS(NULL, _from)));
- auto_ptr_char t(e->getAttributeNS(NULL, _to));
+ if (e->hasAttributeNS(nullptr, _from) && e->hasAttributeNS(nullptr, _to)) {
+ auto_ptr<xmltooling::QName> f(XMLHelper::getNodeValueAsQName(e->getAttributeNodeNS(nullptr, _from)));
+ auto_ptr_char t(e->getAttributeNS(nullptr, _to));
if (f.get() && t.get() && *t.get()) {
if (log.isDebugEnabled())
log.debug("mapping (%s) to (%s)", f->toString().c_str(), t.get());
if (!xmlObject || !XMLString::equals(saml1::Attribute::LOCAL_NAME, xmlObject->getElementQName().getLocalPart())) {
log.warn("XMLObject type not recognized by DOMAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
auto_ptr<ExtensibleAttribute> attr(new ExtensibleAttribute(ids, m_formatter.get()));
}
else {
log.warn("XMLObject type not recognized by DOMAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
log.warn("skipping AttributeValue without a backing DOM");
}
- return dest.integer() ? _decode(attr.release()) : NULL;
+ return dest.integer() ? _decode(attr.release()) : nullptr;
}
DDF DOMAttributeDecoder::convert(DOMElement* e, bool nameit) const
const XMLCh* nsURI;
const XMLCh* local;
map<pair<xstring,xstring>,string>::const_iterator mapping;
- DDF obj = DDF(NULL).structure();
+ DDF obj = DDF(nullptr).structure();
if (nameit) {
// Name this structure.
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const char* ExtensibleAttribute::getScope(size_t index) const
{
- return NULL;
+ return nullptr;
}
void ExtensibleAttribute::removeValue(size_t index)
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
}
Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
private:
if (!alg || !*alg)
alg = "SHA1";
dest.push_back(string());
- dest.back() = SecurityHelper::getDEREncoding(*cred.get(), m_hash ? alg : NULL);
+ dest.back() = SecurityHelper::getDEREncoding(*cred.get(), m_hash ? alg : nullptr);
if (dest.back().empty())
dest.pop_back();
}
KeyInfoAttributeDecoder::KeyInfoAttributeDecoder(const DOMElement* e)
: AttributeDecoder(e),
m_hash(false),
- m_keyInfoHashAlg(e ? e->getAttributeNS(NULL, keyInfoHashAlg) : NULL),
- m_keyInfoResolver(NULL) {
- const XMLCh* flag = e ? e->getAttributeNS(NULL, _hash) : NULL;
+ m_keyInfoHashAlg(e ? e->getAttributeNS(nullptr, keyInfoHashAlg) : nullptr),
+ m_keyInfoResolver(nullptr) {
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr, _hash) : nullptr;
m_hash = (flag && (*flag == chLatin_t || *flag == chDigit_1));
- e = e ? XMLHelper::getFirstChildElement(e,_KeyInfoResolver) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e,_KeyInfoResolver) : nullptr;
if (e) {
- auto_ptr_char t(e->getAttributeNS(NULL, _type));
+ auto_ptr_char t(e->getAttributeNS(nullptr, _type));
if (t.get() && *t.get())
m_keyInfoResolver = XMLToolingConfig::getConfig().KeyInfoResolverManager.newPlugin(t.get(), e);
else
if (!xmlObject || !XMLString::equals(saml1::Attribute::LOCAL_NAME, xmlObject->getElementQName().getLocalPart())) {
log.warn("XMLObject type not recognized by KeyInfoAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
auto_ptr<SimpleAttribute> attr(new SimpleAttribute(ids));
}
else {
log.warn("XMLObject type not recognized by KeyInfoAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
}
}
- return dest.empty() ? NULL : _decode(attr.release());
+ return dest.empty() ? nullptr : _decode(attr.release());
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* NameIDAttributeDecoder.cpp
*
- * Decodes SAML into NameIDAttributes
+ * Decodes SAML into NameIDAttributes.
*/
#include "internal.h"
{
public:
NameIDAttributeDecoder(const DOMElement* e)
- : AttributeDecoder(e), m_formatter(e ? e->getAttributeNS(NULL, formatter) : NULL), m_defaultQualifiers(false) {
- const XMLCh* flag = e ? e->getAttributeNS(NULL, defaultQualifiers) : NULL;
+ : AttributeDecoder(e), m_formatter(e ? e->getAttributeNS(nullptr, formatter) : nullptr), m_defaultQualifiers(false) {
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr, defaultQualifiers) : nullptr;
if (flag && (*flag == chLatin_t || *flag == chDigit_1))
m_defaultQualifiers = true;
}
~NameIDAttributeDecoder() {}
shibsp::Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
private:
}
else {
log.warn("XMLObject type not recognized by NameIDAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
}
}
- return dest.empty() ? NULL : _decode(nameid.release());
+ return dest.empty() ? nullptr : _decode(nameid.release());
}
const NameIDType* saml2name = dynamic_cast<const NameIDType*>(xmlObject);
}
else {
log.warn("XMLObject type not recognized by NameIDAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
- return dest.empty() ? NULL : _decode(nameid.release());
+ return dest.empty() ? nullptr : _decode(nameid.release());
}
void NameIDAttributeDecoder::extract(
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
NameIDFromScopedAttributeDecoder(const DOMElement* e)
: AttributeDecoder(e),
m_delimeter('@'),
- m_format(e ? e->getAttributeNS(NULL,format) : NULL),
- m_formatter(e ? e->getAttributeNS(NULL,formatter) : NULL),
+ m_format(e ? e->getAttributeNS(nullptr,format) : nullptr),
+ m_formatter(e ? e->getAttributeNS(nullptr,formatter) : nullptr),
m_defaultQualifiers(false) {
- if (e && e->hasAttributeNS(NULL,scopeDelimeter)) {
- auto_ptr_char d(e->getAttributeNS(NULL,scopeDelimeter));
+ if (e && e->hasAttributeNS(nullptr,scopeDelimeter)) {
+ auto_ptr_char d(e->getAttributeNS(nullptr,scopeDelimeter));
m_delimeter = *(d.get());
}
- const XMLCh* flag = e ? e->getAttributeNS(NULL, defaultQualifiers) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr, defaultQualifiers) : nullptr;
if (flag && (*flag == chLatin_t || *flag == chDigit_1))
m_defaultQualifiers = true;
}
~NameIDFromScopedAttributeDecoder() {}
shibsp::Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
private:
char* val;
char* scope;
const XMLCh* xmlscope;
- xmltooling::QName scopeqname(NULL,Scope);
+ xmltooling::QName scopeqname(nullptr,Scope);
auto_ptr<NameIDAttribute> nameid(
new NameIDAttribute(ids, (m_formatter.get() && *m_formatter.get()) ? m_formatter.get() : DEFAULT_NAMEID_FORMATTER)
);
}
else {
log.warn("XMLObject type not recognized by NameIDFromScopedAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
dest.push_back(NameIDAttribute::Value());
NameIDAttribute::Value& destval = dest.back();
const AttributeExtensibleXMLObject* aexo=dynamic_cast<const AttributeExtensibleXMLObject*>(*v);
- xmlscope = aexo ? aexo->getAttribute(scopeqname) : NULL;
+ xmlscope = aexo ? aexo->getAttribute(scopeqname) : nullptr;
if (!xmlscope || !*xmlscope) {
// Terminate the value at the scope delimiter.
if (scope = strchr(val, m_delimeter))
}
}
- return dest.empty() ? NULL : _decode(nameid.release());
+ return dest.empty() ? nullptr : _decode(nameid.release());
}
log.warn("XMLObject type not recognized by NameIDFromScopedAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
{
public:
ScopedAttributeDecoder(const DOMElement* e) : AttributeDecoder(e), m_delimiter('@') {
- if (e && e->hasAttributeNS(NULL,scopeDelimiter)) {
- auto_ptr_char d(e->getAttributeNS(NULL,scopeDelimiter));
+ if (e && e->hasAttributeNS(nullptr,scopeDelimiter)) {
+ auto_ptr_char d(e->getAttributeNS(nullptr,scopeDelimiter));
m_delimiter = *(d.get());
}
}
~ScopedAttributeDecoder() {}
shibsp::Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
private:
char* val;
char* scope;
const XMLCh* xmlscope;
- xmltooling::QName scopeqname(NULL,Scope);
+ xmltooling::QName scopeqname(nullptr,Scope);
auto_ptr<ScopedAttribute> scoped(new ScopedAttribute(ids, m_delimiter));
vector< pair<string,string> >& dest = scoped->getValues();
vector<XMLObject*>::const_iterator v,stop;
}
else {
log.warn("XMLObject type not recognized by ScopedAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
val = toUTF8((*v)->getTextContent());
if (val && *val) {
const AttributeExtensibleXMLObject* aexo=dynamic_cast<const AttributeExtensibleXMLObject*>(*v);
- xmlscope = aexo ? aexo->getAttribute(scopeqname) : NULL;
+ xmlscope = aexo ? aexo->getAttribute(scopeqname) : nullptr;
if (xmlscope && *xmlscope) {
scope = toUTF8(xmlscope);
dest.push_back(pair<string,string>(val,scope));
}
}
- return dest.empty() ? NULL : _decode(scoped.release());
+ return dest.empty() ? nullptr : _decode(scoped.release());
}
const NameID* saml2name = dynamic_cast<const NameID*>(xmlObject);
}
else {
log.warn("XMLObject type not recognized by ScopedAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
log.warn("ignoring empty NameID");
}
delete[] val;
- return dest.empty() ? NULL : _decode(scoped.release());
+ return dest.empty() ? nullptr : _decode(scoped.release());
}
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
DDF ddf = Attribute::marshall();
DDF vlist = ddf.first();
for (vector<string>::const_iterator i=m_serialized.begin(); i!=m_serialized.end(); ++i)
- vlist.add(DDF(NULL).string(i->c_str()));
+ vlist.add(DDF(nullptr).string(i->c_str()));
return ddf;
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* StringAttributeDecoder.cpp
*
- * Decodes SAML into SimpleAttributes
+ * Decodes SAML into SimpleAttributes.
*/
#include "internal.h"
~StringAttributeDecoder() {}
shibsp::Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
};
}
else {
log.warn("XMLObject type not recognized by StringAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
}
}
- return dest.empty() ? NULL : _decode(simple.release());
+ return dest.empty() ? nullptr : _decode(simple.release());
}
const NameID* saml2name = dynamic_cast<const NameID*>(xmlObject);
}
else {
log.warn("XMLObject type not recognized by StringAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
else
log.warn("ignoring empty NameID");
delete[] val;
- return dest.empty() ? NULL : _decode(simple.release());
+ return dest.empty() ? nullptr : _decode(simple.release());
}
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
ddf.name("XML");
DDF vlist = ddf.first();
for (vector<string>::const_iterator i=m_values.begin(); i!=m_values.end(); ++i)
- vlist.add(DDF(NULL).string(i->c_str()));
+ vlist.add(DDF(nullptr).string(i->c_str()));
return ddf;
}
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
~XMLAttributeDecoder() {}
Attribute* decode(
- const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=NULL, const char* relyingParty=NULL
+ const vector<string>& ids, const XMLObject* xmlObject, const char* assertingParty=nullptr, const char* relyingParty=nullptr
) const;
private:
) const
{
if (!xmlObject)
- return NULL;
+ return nullptr;
Category& log = Category::getInstance(SHIBSP_LOGCAT".AttributeDecoder.XML");
else {
log.warn("skipping XMLObject without a backing DOM");
}
- return dest.empty() ? NULL : _decode(attr.release());
+ return dest.empty() ? nullptr : _decode(attr.release());
}
vector<XMLObject*>::const_iterator v,stop;
}
else {
log.warn("XMLObject type not recognized by XMLAttributeDecoder, no values returned");
- return NULL;
+ return nullptr;
}
}
log.warn("skipping AttributeValue without a backing DOM");
}
- return dest.empty() ? NULL : _decode(attr.release());
+ return dest.empty() ? nullptr : _decode(attr.release());
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
BasicFilteringContext(
const Application& app,
const std::vector<Attribute*>& attributes,
- const opensaml::saml2md::RoleDescriptor* role=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL
+ const opensaml::saml2md::RoleDescriptor* role=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr
);
virtual ~BasicFilteringContext();
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* Gets the ID of the requester of the attributes, if known.
*
- * @return requester of the attributes, or NULL
+ * @return requester of the attributes, or nullptr
*/
virtual const XMLCh* getAttributeRequester() const=0;
/**
* Gets the ID of the issuer of the attributes, if known.
*
- * @return ID of the issuer of the attributes, or NULL
+ * @return ID of the issuer of the attributes, or nullptr
*/
virtual const XMLCh* getAttributeIssuer() const=0;
/**
* Gets the SAML metadata for the attribute requesting role, if available.
*
- * @return SAML metadata for the attribute requesting role, or NULL
+ * @return SAML metadata for the attribute requesting role, or nullptr
*/
virtual const opensaml::saml2md::RoleDescriptor* getAttributeRequesterMetadata() const=0;
/**
* Gets the SAML metadata for the attribute issuing role, if available.
*
- * @return SAML metadata for the attribute issuing role, or NULL
+ * @return SAML metadata for the attribute issuing role, or nullptr
*/
virtual const opensaml::saml2md::RoleDescriptor* getAttributeIssuerMetadata() const=0;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
MatchFunctor* func;
const DOMElement* e = XMLHelper::getFirstChildElement(p.second);
while (e) {
- func = NULL;
+ func = nullptr;
if (XMLHelper::isNodeNamed(e, shibspconstants::SHIB2ATTRIBUTEFILTER_MF_BASIC_NS, Rule)) {
func = buildFunctor(e, p.first);
}
else if (XMLHelper::isNodeNamed(e, shibspconstants::SHIB2ATTRIBUTEFILTER_MF_BASIC_NS, RuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
multimap<string,MatchFunctor*>::const_iterator rule = p.first->getMatchFunctors().find(ref.get());
- func = (rule!=p.first->getMatchFunctors().end()) ? rule->second : NULL;
+ func = (rule!=p.first->getMatchFunctors().end()) ? rule->second : nullptr;
}
}
MatchFunctor* AndMatchFunctor::buildFunctor(const DOMElement* e, const FilterPolicyContext* functorMap)
{
// We'll track and map IDs just for consistency, but don't require them or worry about dups.
- auto_ptr_char temp(e->getAttributeNS(NULL,_id));
+ auto_ptr_char temp(e->getAttributeNS(nullptr,_id));
const char* id = (temp.get() && *temp.get()) ? temp.get() : "";
if (*id && functorMap->getMatchFunctors().count(id))
id = "";
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const XMLCh* m_group;
public:
AttributeIssuerInEntityGroupFunctor(const DOMElement* e) {
- m_group = e ? e->getAttributeNS(NULL,groupID) : NULL;
+ m_group = e ? e->getAttributeNS(nullptr,groupID) : nullptr;
if (!m_group || !*m_group)
throw ConfigurationException("AttributeIssuerInEntityGroup MatchFunctor requires non-empty groupID attribute.");
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
RegularExpression* m_regex;
public:
AttributeIssuerRegexFunctor(const DOMElement* e) {
- const XMLCh* r = e ? e->getAttributeNS(NULL,regex) : NULL;
+ const XMLCh* r = e ? e->getAttributeNS(nullptr,regex) : nullptr;
if (!r || !*r)
throw ConfigurationException("AttributeIssuerRegex MatchFunctor requires non-empty regex attribute.");
try {
- m_regex = new RegularExpression(r, e->getAttributeNS(NULL,options));
+ m_regex = new RegularExpression(r, e->getAttributeNS(nullptr,options));
}
catch (XMLException& ex) {
xmltooling::auto_ptr_char temp(ex.getMessage());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
bool m_ignoreCase;
public:
AttributeIssuerStringFunctor(const DOMElement* e) {
- m_value = e ? e->getAttributeNS(NULL,value) : NULL;
+ m_value = e ? e->getAttributeNS(nullptr,value) : nullptr;
if (!m_value || !*m_value)
throw ConfigurationException("AttributeIssuerString MatchFunctor requires non-empty value attribute.");
- const XMLCh* flag = e ? e->getAttributeNS(NULL,ignoreCase) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr,ignoreCase) : nullptr;
m_ignoreCase = (flag && (*flag == chLatin_t || *flag == chDigit_1));
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const XMLCh* m_group;
public:
AttributeRequesterInEntityGroupFunctor(const DOMElement* e) {
- m_group = e ? e->getAttributeNS(NULL,groupID) : NULL;
+ m_group = e ? e->getAttributeNS(nullptr,groupID) : nullptr;
if (!m_group || !*m_group)
throw ConfigurationException("AttributeRequesterInEntityGroup MatchFunctor requires non-empty groupID attribute.");
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
RegularExpression* m_regex;
public:
AttributeRequesterRegexFunctor(const DOMElement* e) {
- const XMLCh* r = e ? e->getAttributeNS(NULL,regex) : NULL;
+ const XMLCh* r = e ? e->getAttributeNS(nullptr,regex) : nullptr;
if (!r || !*r)
throw ConfigurationException("AttributeRequesterRegex MatchFunctor requires non-empty regex attribute.");
try {
- m_regex = new RegularExpression(r, e->getAttributeNS(NULL,options));
+ m_regex = new RegularExpression(r, e->getAttributeNS(nullptr,options));
}
catch (XMLException& ex) {
xmltooling::auto_ptr_char temp(ex.getMessage());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
bool m_ignoreCase;
public:
AttributeRequesterStringFunctor(const DOMElement* e) {
- m_value = e ? e->getAttributeNS(NULL,value) : NULL;
+ m_value = e ? e->getAttributeNS(nullptr,value) : nullptr;
if (!m_value || !*m_value)
throw ConfigurationException("AttributeRequesterString MatchFunctor requires non-empty value attribute.");
- const XMLCh* flag = e ? e->getAttributeNS(NULL,ignoreCase) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr,ignoreCase) : nullptr;
m_ignoreCase = (flag && (*flag == chLatin_t || *flag == chDigit_1));
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AttributeScopeMatchesShibMDScopeFunctor.cpp
*
- * A match function that ensures that an attributes value's scope matches a scope given in metadata for the entity or role.
+ * A match function that ensures that an attributes value's scope matches
+ * a scope given in metadata for the entity or role.
*/
#include "internal.h"
return false;
const Scope* rule;
- const XMLCh* widescope=NULL;
+ const XMLCh* widescope=nullptr;
const Extensions* ext = issuer->getExtensions();
if (ext) {
const vector<XMLObject*>& exts = ext->getUnknownXMLObjects();
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AttributeScopeRegexFunctor.cpp
*
- * A match function that evaluates an attribute value's scope against the provided regular expression.
+ * A match function that evaluates an attribute value's scope against the
+ * provided regular expression.
*/
#include "internal.h"
public:
AttributeScopeRegexFunctor(const DOMElement* e)
- : m_attributeID(e ? e->getAttributeNS(NULL,attributeID) : NULL) {
- const XMLCh* r = e ? e->getAttributeNS(NULL,regex) : NULL;
+ : m_attributeID(e ? e->getAttributeNS(nullptr,attributeID) : nullptr) {
+ const XMLCh* r = e ? e->getAttributeNS(nullptr,regex) : nullptr;
if (!r || !*r)
throw ConfigurationException("AttributeScopeRegex MatchFunctor requires non-empty regex attribute.");
try {
- m_regex = new RegularExpression(r, e->getAttributeNS(NULL,options));
+ m_regex = new RegularExpression(r, e->getAttributeNS(nullptr,options));
}
catch (XMLException& ex) {
xmltooling::auto_ptr_char temp(ex.getMessage());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AttributeScopeStringFunctor.cpp
*
- * A match function that matches the scope of an attribute value against the specified value.
+ * A match function that matches the scope of an attribute value against
+ * the specified value.
*/
#include "internal.h"
public:
AttributeScopeStringFunctor(const DOMElement* e)
- : m_value(e ? xmltooling::toUTF8(e->getAttributeNS(NULL,value)) : NULL), m_attributeID(e ? e->getAttributeNS(NULL,attributeID) : NULL) {
+ : m_value(e ? xmltooling::toUTF8(e->getAttributeNS(nullptr,value)) : nullptr), m_attributeID(e ? e->getAttributeNS(nullptr,attributeID) : nullptr) {
if (!m_value || !*m_value) {
delete[] m_value;
throw ConfigurationException("AttributeScopeString MatchFunctor requires non-empty value attribute.");
}
- const XMLCh* flag = e ? e->getAttributeNS(NULL,ignoreCase) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr,ignoreCase) : nullptr;
m_ignoreCase = (flag && (*flag == chLatin_t || *flag == chDigit_1));
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AttributeValueRegexFunctor.cpp
*
- * A match function that evaluates an attribute's value against the provided regular expression.
+ * A match function that evaluates an attribute's value against the provided
+ * regular expression.
*/
#include "internal.h"
public:
AttributeValueRegexFunctor(const DOMElement* e)
- : m_attributeID(e ? e->getAttributeNS(NULL,attributeID) : NULL) {
- const XMLCh* r = e ? e->getAttributeNS(NULL,regex) : NULL;
+ : m_attributeID(e ? e->getAttributeNS(nullptr,attributeID) : nullptr) {
+ const XMLCh* r = e ? e->getAttributeNS(nullptr,regex) : nullptr;
if (!r || !*r)
throw ConfigurationException("AttributeValueRegex MatchFunctor requires non-empty regex attribute.");
try {
- m_regex = new RegularExpression(r, e->getAttributeNS(NULL,options));
+ m_regex = new RegularExpression(r, e->getAttributeNS(nullptr,options));
}
catch (XMLException& ex) {
xmltooling::auto_ptr_char temp(ex.getMessage());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AttributeValueStringFunctor.cpp
*
- * A match function that matches the value of an attribute against the specified value.
+ * A match function that matches the value of an attribute against the
+ * specified value.
*/
#include "internal.h"
public:
AttributeValueStringFunctor(const DOMElement* e)
- : m_value(e ? xmltooling::toUTF8(e->getAttributeNS(NULL,value)) : NULL), m_attributeID(e ? e->getAttributeNS(NULL,attributeID) : NULL) {
+ : m_value(e ? xmltooling::toUTF8(e->getAttributeNS(nullptr,value)) : nullptr), m_attributeID(e ? e->getAttributeNS(nullptr,attributeID) : nullptr) {
if (!m_value || !*m_value) {
delete[] m_value;
throw ConfigurationException("AttributeValueString MatchFunctor requires non-empty value attribute.");
}
- if (e && e->hasAttributeNS(NULL,ignoreCase)) {
+ if (e && e->hasAttributeNS(nullptr,ignoreCase)) {
xmltooling::logging::Category::getInstance(SHIBSP_LOGCAT".AttributeFilter").warn(
"ignoreCase property ignored by AttributeValueString MatchFunctor in favor of attribute's caseSensitive property"
);
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AuthenticationMethodRegexFunctor.cpp
*
- * A match function that evaluates to true if the user's authentication method matches the provided regular
- * expression.
+ * A match function that evaluates to true if the user's authentication
+ * method matches the provided regular expression.
*/
#include "internal.h"
RegularExpression* m_regex;
public:
AuthenticationMethodRegexFunctor(const DOMElement* e) {
- const XMLCh* r = e ? e->getAttributeNS(NULL,regex) : NULL;
+ const XMLCh* r = e ? e->getAttributeNS(nullptr,regex) : nullptr;
if (!r || !*r)
throw ConfigurationException("AuthenticationMethodRegex MatchFunctor requires non-empty regex attribute.");
try {
- m_regex = new RegularExpression(r, e->getAttributeNS(NULL,options));
+ m_regex = new RegularExpression(r, e->getAttributeNS(nullptr,options));
}
catch (XMLException& ex) {
xmltooling::auto_ptr_char temp(ex.getMessage());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AuthenticationMethodStringFunctor.cpp
*
- * Match functor that compares the user's authentication method against a given string.
+ * Match functor that compares the user's authentication method against
+ * a given string.
*/
#include "internal.h"
const XMLCh* m_value;
bool m_ignoreCase;
public:
- AuthenticationMethodStringFunctor(const DOMElement* e) : m_value(e ? e->getAttributeNS(NULL,value) : NULL) {
+ AuthenticationMethodStringFunctor(const DOMElement* e) : m_value(e ? e->getAttributeNS(nullptr,value) : nullptr) {
if (!m_value || !*m_value)
throw ConfigurationException("AuthenticationMethodString MatchFunctor requires non-empty value attribute.");
- const XMLCh* flag = e ? e->getAttributeNS(NULL,ignoreCase) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr,ignoreCase) : nullptr;
m_ignoreCase = (flag && (*flag == chLatin_t || *flag == chDigit_1));
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const RoleDescriptor* role,
const XMLCh* authncontext_class,
const XMLCh* authncontext_decl
- ) : m_app(app), m_role(role), m_issuer(NULL), m_class(authncontext_class), m_decl(authncontext_decl)
+ ) : m_app(app), m_role(role), m_issuer(nullptr), m_class(authncontext_class), m_decl(authncontext_decl)
{
if (role)
m_issuer = dynamic_cast<EntityDescriptor*>(role->getParent())->getEntityID();
const RoleDescriptor* BasicFilteringContext::getAttributeRequesterMetadata() const
{
- return NULL;
+ return nullptr;
}
const RoleDescriptor* BasicFilteringContext::getAttributeIssuerMetadata() const
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SPConfig& conf = SPConfig::getConfig();
// Load up the chain of handlers.
- e = e ? XMLHelper::getFirstChildElement(e, _AttributeFilter) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, _AttributeFilter) : nullptr;
while (e) {
- auto_ptr_char type(e->getAttributeNS(NULL,_type));
+ auto_ptr_char type(e->getAttributeNS(nullptr,_type));
if (type.get() && *(type.get())) {
try {
m_filters.push_back(conf.AttributeFilterManager.newPlugin(type.get(),e));
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
static XMLCh RuleReference[] = UNICODE_LITERAL_13(R,u,l,e,R,e,f,e,r,e,n,c,e);
};
-NotMatchFunctor::NotMatchFunctor(const pair<const FilterPolicyContext*,const DOMElement*>& p) : m_functor(NULL)
+NotMatchFunctor::NotMatchFunctor(const pair<const FilterPolicyContext*,const DOMElement*>& p) : m_functor(nullptr)
{
const DOMElement* e = XMLHelper::getFirstChildElement(p.second);
if (e) {
m_functor = buildFunctor(e, p.first);
}
else if (XMLHelper::isNodeNamed(e, shibspconstants::SHIB2ATTRIBUTEFILTER_MF_BASIC_NS, RuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
multimap<string,MatchFunctor*>::const_iterator rule = p.first->getMatchFunctors().find(ref.get());
- m_functor = (rule!=p.first->getMatchFunctors().end()) ? rule->second : NULL;
+ m_functor = (rule!=p.first->getMatchFunctors().end()) ? rule->second : nullptr;
}
}
}
MatchFunctor* NotMatchFunctor::buildFunctor(const DOMElement* e, const FilterPolicyContext* functorMap)
{
// We'll track and map IDs just for consistency, but don't require them or worry about dups.
- auto_ptr_char temp(e->getAttributeNS(NULL,_id));
+ auto_ptr_char temp(e->getAttributeNS(nullptr,_id));
const char* id = (temp.get() && *temp.get()) ? temp.get() : "";
if (*id && functorMap->getMatchFunctors().count(id))
id = "";
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
public:
NumberOfAttributeValuesFunctor(const DOMElement* e)
- : m_min(0), m_max(INT_MAX), m_attributeID(e ? e->getAttributeNS(NULL,attributeID) : NULL) {
+ : m_min(0), m_max(INT_MAX), m_attributeID(e ? e->getAttributeNS(nullptr,attributeID) : nullptr) {
if (!m_attributeID.get() || !*m_attributeID.get())
throw ConfigurationException("No attributeID specified.");
- const XMLCh* num = e->getAttributeNS(NULL, minimum);
+ const XMLCh* num = e->getAttributeNS(nullptr, minimum);
if (num && *num)
m_min = XMLString::parseInt(num);
- num = e->getAttributeNS(NULL, maximum);
+ num = e->getAttributeNS(nullptr, maximum);
if (num && *num)
m_max = XMLString::parseInt(num);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
MatchFunctor* func;
const DOMElement* e = XMLHelper::getFirstChildElement(p.second);
while (e) {
- func = NULL;
+ func = nullptr;
if (XMLHelper::isNodeNamed(e, shibspconstants::SHIB2ATTRIBUTEFILTER_MF_BASIC_NS, Rule)) {
func = buildFunctor(e, p.first);
}
else if (XMLHelper::isNodeNamed(e, shibspconstants::SHIB2ATTRIBUTEFILTER_MF_BASIC_NS, RuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
multimap<string,MatchFunctor*>::const_iterator rule = p.first->getMatchFunctors().find(ref.get());
- func = (rule!=p.first->getMatchFunctors().end()) ? rule->second : NULL;
+ func = (rule!=p.first->getMatchFunctors().end()) ? rule->second : nullptr;
}
}
MatchFunctor* OrMatchFunctor::buildFunctor(const DOMElement* e, const FilterPolicyContext* functorMap)
{
// We'll track and map IDs just for consistency, but don't require them or worry about dups.
- auto_ptr_char temp(e->getAttributeNS(NULL,_id));
+ auto_ptr_char temp(e->getAttributeNS(nullptr,_id));
const char* id = (temp.get() && *temp.get()) ? temp.get() : "";
if (*id && functorMap->getMatchFunctors().count(id))
id = "";
#endif
// Each Policy has a functor for determining applicability and a map of
- // attribute IDs to Accept/Deny functor pairs (which can include NULLs).
+ // attribute IDs to Accept/Deny functor pairs (which can include nullptrs).
struct SHIBSP_DLLLOCAL Policy
{
- Policy() : m_applies(NULL) {}
+ Policy() : m_applies(nullptr) {}
const MatchFunctor* m_applies;
typedef multimap< string,pair<const MatchFunctor*,const MatchFunctor*> > rules_t;
rules_t m_rules;
class SHIBSP_DLLLOCAL XMLFilter : public AttributeFilter, public ReloadableXMLFile
{
public:
- XMLFilter(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AttributeFilter")), m_impl(NULL) {
+ XMLFilter(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AttributeFilter")), m_impl(nullptr) {
background_load();
}
~XMLFilter() {
static const XMLCh _ref[] = UNICODE_LITERAL_3(r,e,f);
};
-XMLFilterImpl::XMLFilterImpl(const DOMElement* e, Category& log) : m_log(log), m_document(NULL)
+XMLFilterImpl::XMLFilterImpl(const DOMElement* e, Category& log) : m_log(log), m_document(nullptr)
{
#ifdef _DEBUG
xmltooling::NDC ndc("XMLFilterImpl");
}
else if (XMLHelper::isNodeNamed(child, SHIB2ATTRIBUTEFILTER_NS, AttributeFilterPolicy)) {
e = XMLHelper::getFirstChildElement(child);
- MatchFunctor* func = NULL;
+ MatchFunctor* func = nullptr;
if (e && XMLHelper::isNodeNamed(e, SHIB2ATTRIBUTEFILTER_NS, PolicyRequirementRule)) {
func = buildFunctor(e, reqFunctors, "PolicyRequirementRule", false);
}
else if (e && XMLHelper::isNodeNamed(e, SHIB2ATTRIBUTEFILTER_NS, PolicyRequirementRuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
multimap<string,MatchFunctor*>::const_iterator prr = m_policyReqRules.find(ref.get());
- func = (prr!=m_policyReqRules.end()) ? prr->second : NULL;
+ func = (prr!=m_policyReqRules.end()) ? prr->second : nullptr;
}
}
if (func) {
m_policies.back().m_rules.insert(Policy::rules_t::value_type(rule.first, rule.second));
}
else if (e && XMLHelper::isNodeNamed(e, SHIB2ATTRIBUTEFILTER_NS, AttributeRuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
map< string,pair< string,pair< const MatchFunctor*,const MatchFunctor*> > >::const_iterator ar = m_attrRules.find(ref.get());
if (ar != m_attrRules.end())
const DOMElement* e, const FilterPolicyContext& functorMap, const char* logname, bool standalone
)
{
- auto_ptr_char temp(e->getAttributeNS(NULL,_id));
+ auto_ptr_char temp(e->getAttributeNS(nullptr,_id));
const char* id = (temp.get() && *temp.get()) ? temp.get() : "";
if (standalone && !*id) {
m_log.warn("skipping stand-alone %s with no id", logname);
- return NULL;
+ return nullptr;
}
else if (*id && functorMap.getMatchFunctors().count(id)) {
if (standalone) {
m_log.warn("skipping duplicate stand-alone %s with id (%s)", logname, id);
- return NULL;
+ return nullptr;
}
else
id = "";
else
m_log.error("%s with no xsi:type", logname);
- return NULL;
+ return nullptr;
}
pair< string,pair<const MatchFunctor*,const MatchFunctor*> > XMLFilterImpl::buildAttributeRule(
const DOMElement* e, const FilterPolicyContext& permMap, const FilterPolicyContext& denyMap, bool standalone
)
{
- auto_ptr_char temp(e->getAttributeNS(NULL,_id));
+ auto_ptr_char temp(e->getAttributeNS(nullptr,_id));
const char* id = (temp.get() && *temp.get()) ? temp.get() : "";
if (standalone && !*id) {
m_log.warn("skipping stand-alone AttributeRule with no id");
- return make_pair(string(),pair<const MatchFunctor*,const MatchFunctor*>(NULL,NULL));
+ return make_pair(string(),pair<const MatchFunctor*,const MatchFunctor*>(nullptr,nullptr));
}
else if (*id && m_attrRules.count(id)) {
if (standalone) {
m_log.warn("skipping duplicate stand-alone AttributeRule with id (%s)", id);
- return make_pair(string(),pair<const MatchFunctor*,const MatchFunctor*>(NULL,NULL));
+ return make_pair(string(),pair<const MatchFunctor*,const MatchFunctor*>(nullptr,nullptr));
}
else
id = "";
}
- auto_ptr_char attrID(e->getAttributeNS(NULL,attributeID));
+ auto_ptr_char attrID(e->getAttributeNS(nullptr,attributeID));
if (!attrID.get() || !*attrID.get())
m_log.warn("skipping AttributeRule with no attributeID");
- MatchFunctor* perm=NULL;
- MatchFunctor* deny=NULL;
+ MatchFunctor* perm=nullptr;
+ MatchFunctor* deny=nullptr;
e = XMLHelper::getFirstChildElement(e);
if (e && XMLHelper::isNodeNamed(e, SHIB2ATTRIBUTEFILTER_NS, PermitValueRule)) {
e = XMLHelper::getNextSiblingElement(e);
}
else if (e && XMLHelper::isNodeNamed(e, SHIB2ATTRIBUTEFILTER_NS, PermitValueRuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
multimap<string,MatchFunctor*>::const_iterator pvr = m_permitValRules.find(ref.get());
- perm = (pvr!=m_permitValRules.end()) ? pvr->second : NULL;
+ perm = (pvr!=m_permitValRules.end()) ? pvr->second : nullptr;
}
e = XMLHelper::getNextSiblingElement(e);
}
deny = buildFunctor(e, denyMap, "DenyValueRule", false);
}
else if (e && XMLHelper::isNodeNamed(e, SHIB2ATTRIBUTEFILTER_NS, DenyValueRuleReference)) {
- auto_ptr_char ref(e->getAttributeNS(NULL, _ref));
+ auto_ptr_char ref(e->getAttributeNS(nullptr, _ref));
if (ref.get() && *ref.get()) {
multimap<string,MatchFunctor*>::const_iterator pvr = m_denyValRules.find(ref.get());
- deny = (pvr!=m_denyValRules.end()) ? pvr->second : NULL;
+ deny = (pvr!=m_denyValRules.end()) ? pvr->second : nullptr;
}
}
m_log.warn("skipping AttributeRule (%s), permit and denial rule(s) invalid or missing", id);
else
m_log.warn("skipping AttributeRule, permit and denial rule(s) invalid or missing");
- return pair< string,pair<const MatchFunctor*,const MatchFunctor*> >(string(),pair<const MatchFunctor*,const MatchFunctor*>(NULL,NULL));
+ return pair< string,pair<const MatchFunctor*,const MatchFunctor*> >(string(),pair<const MatchFunctor*,const MatchFunctor*>(nullptr,nullptr));
}
void XMLFilterImpl::filterAttributes(const FilteringContext& context, vector<Attribute*>& attributes) const
pair<bool,DOMElement*> raw = ReloadableXMLFile::load();
// If we own it, wrap it.
- XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : NULL);
+ XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : nullptr);
XMLFilterImpl* impl = new XMLFilterImpl(raw.second, m_log);
delete m_impl;
m_impl = impl;
- return make_pair(false,(DOMElement*)NULL);
+ return make_pair(false,(DOMElement*)nullptr);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* @file shibsp/attribute/resolver/AttributeResolver.h
*
- * A service that transforms or resolves additional attributes for a particular subject.
+ * A service that transforms or resolves additional attributes for a
+ * particular subject.
*/
#ifndef __shibsp_resolver_h__
const Application& application,
const opensaml::saml2md::EntityDescriptor* issuer,
const XMLCh* protocol,
- const opensaml::saml2::NameID* nameid=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const std::vector<const opensaml::Assertion*>* tokens=NULL,
- const std::vector<Attribute*>* attributes=NULL
+ const opensaml::saml2::NameID* nameid=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const std::vector<const opensaml::Assertion*>* tokens=nullptr,
+ const std::vector<Attribute*>* attributes=nullptr
) const=0;
/**
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SPConfig& conf = SPConfig::getConfig();
// Load up the chain of handlers.
- e = e ? XMLHelper::getFirstChildElement(e, _AttributeExtractor) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, _AttributeExtractor) : nullptr;
while (e) {
- auto_ptr_char type(e->getAttributeNS(NULL,_type));
+ auto_ptr_char type(e->getAttributeNS(nullptr,_type));
if (type.get() && *(type.get())) {
try {
m_extractors.push_back(conf.AttributeExtractorManager.newPlugin(type.get(),e));
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const XMLCh* authncontext_decl,
const vector<const opensaml::Assertion*>* tokens,
const vector<shibsp::Attribute*>* attributes
- ) : m_app(application), m_issuer(issuer), m_protocol(protocol), m_nameid(nameid), m_authclass(authncontext_class), m_authdecl(authncontext_decl), m_session(NULL) {
+ ) : m_app(application), m_issuer(issuer), m_protocol(protocol), m_nameid(nameid), m_authclass(authncontext_class), m_authdecl(authncontext_decl), m_session(nullptr) {
if (tokens)
m_tokens.assign(tokens->begin(), tokens->end());
if (attributes)
const Application& application,
const EntityDescriptor* issuer,
const XMLCh* protocol,
- const NameID* nameid=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const vector<const opensaml::Assertion*>* tokens=NULL,
- const vector<shibsp::Attribute*>* attributes=NULL
+ const NameID* nameid=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const vector<const opensaml::Assertion*>* tokens=nullptr,
+ const vector<shibsp::Attribute*>* attributes=nullptr
) const {
return new ChainingContext(application, issuer, protocol, nameid, authncontext_class, authncontext_decl, tokens, attributes);
}
SPConfig& conf = SPConfig::getConfig();
// Load up the chain of handlers.
- e = e ? XMLHelper::getFirstChildElement(e, _AttributeResolver) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, _AttributeResolver) : nullptr;
while (e) {
- auto_ptr_char type(e->getAttributeNS(NULL,_type));
+ auto_ptr_char type(e->getAttributeNS(nullptr,_type));
if (type.get() && *(type.get())) {
try {
m_resolvers.push_back(conf.AttributeResolverManager.newPlugin(type.get(),e));
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
DelegationExtractor::DelegationExtractor(const DOMElement* e) : m_attributeId("delegate"), m_formatter("$Name")
{
if (e) {
- const XMLCh* a = e->getAttributeNS(NULL, attributeId);
+ const XMLCh* a = e->getAttributeNS(nullptr, attributeId);
if (a && *a) {
auto_ptr_char temp(a);
m_attributeId = temp.get();
}
- a = e->getAttributeNS(NULL, formatter);
+ a = e->getAttributeNS(nullptr, formatter);
if (a && *a) {
auto_ptr_char temp(a);
m_formatter = temp.get();
continue;
}
- saml2::NameID* n = NULL;
+ saml2::NameID* n = nullptr;
if ((*d)->getEncryptedID()) {
CredentialResolver* cr = application.getCredentialResolver();
if (!cr) {
try {
const XMLCh* recipient = application.getRelyingParty(
- issuer ? dynamic_cast<EntityDescriptor*>(issuer->getParent()) : NULL
+ issuer ? dynamic_cast<EntityDescriptor*>(issuer->getParent()) : nullptr
)->getXMLString("entityID").second;
Locker credlocker(cr);
if (issuer) {
}
if (n) {
- DDF val = DDF(NULL).structure();
+ DDF val = DDF(nullptr).structure();
if ((*d)->getConfirmationMethod()) {
auto_ptr_char temp((*d)->getConfirmationMethod());
val.addmember("ConfirmationMethod").string(temp.get());
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
static const XMLCh signingId[] = UNICODE_LITERAL_9(s,i,g,n,i,n,g,I,d);
};
-KeyDescriptorExtractor::KeyDescriptorExtractor(const DOMElement* e) : m_hashAlg(e ? e->getAttributeNS(NULL, hashAlg) : NULL)
+KeyDescriptorExtractor::KeyDescriptorExtractor(const DOMElement* e) : m_hashAlg(e ? e->getAttributeNS(nullptr, hashAlg) : nullptr)
{
if (e) {
- const XMLCh* a = e->getAttributeNS(NULL, hashId);
+ const XMLCh* a = e->getAttributeNS(nullptr, hashId);
if (a && *a) {
auto_ptr_char temp(a);
m_hashId.push_back(temp.get());
}
- a = e->getAttributeNS(NULL, signingId);
+ a = e->getAttributeNS(nullptr, signingId);
if (a && *a) {
auto_ptr_char temp(a);
m_signingId.push_back(temp.get());
}
- a = e->getAttributeNS(NULL, encryptionId);
+ a = e->getAttributeNS(nullptr, encryptionId);
if (a && *a) {
auto_ptr_char temp(a);
m_encryptionId.push_back(temp.get());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
{
public:
QueryContext(const Application& application, const Session& session)
- : m_query(true), m_app(application), m_session(&session), m_metadata(NULL), m_entity(NULL), m_nameid(NULL) {
+ : m_query(true), m_app(application), m_session(&session), m_metadata(nullptr), m_entity(nullptr), m_nameid(nullptr) {
m_protocol = XMLString::transcode(session.getProtocol());
m_class = XMLString::transcode(session.getAuthnContextClassRef());
m_decl = XMLString::transcode(session.getAuthnContextDeclRef());
const Application& application,
const EntityDescriptor* issuer,
const XMLCh* protocol,
- const NameID* nameid=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const vector<const opensaml::Assertion*>* tokens=NULL
- ) : m_query(true), m_app(application), m_session(NULL), m_metadata(NULL), m_entity(issuer),
+ const NameID* nameid=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const vector<const opensaml::Assertion*>* tokens=nullptr
+ ) : m_query(true), m_app(application), m_session(nullptr), m_metadata(nullptr), m_entity(issuer),
m_protocol(protocol), m_nameid(nameid), m_class(authncontext_class), m_decl(authncontext_decl) {
if (tokens) {
return m_entity = m_metadata->getEntityDescriptor(MetadataProviderCriteria(m_app, m_session->getEntityID())).first;
}
}
- return NULL;
+ return nullptr;
}
const XMLCh* getProtocol() const {
return m_protocol;
const Application& application,
const EntityDescriptor* issuer,
const XMLCh* protocol,
- const NameID* nameid=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const vector<const opensaml::Assertion*>* tokens=NULL,
- const vector<shibsp::Attribute*>* attributes=NULL
+ const NameID* nameid=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const vector<const opensaml::Assertion*>* tokens=nullptr,
+ const vector<shibsp::Attribute*>* attributes=nullptr
) const {
return new QueryContext(application,issuer,protocol,nameid,authncontext_class,authncontext_decl,tokens);
}
xmltooling::NDC ndc("QueryResolver");
#endif
- const XMLCh* pid = e ? e->getAttributeNS(NULL, policyId) : NULL;
+ const XMLCh* pid = e ? e->getAttributeNS(nullptr, policyId) : nullptr;
if (pid && *pid) {
auto_ptr_char temp(pid);
m_policyId = temp.get();
}
- pid = e ? e->getAttributeNS(NULL, subjectMatch) : NULL;
+ pid = e ? e->getAttributeNS(nullptr, subjectMatch) : nullptr;
if (pid && (*pid == chLatin_t || *pid == chDigit_1))
m_subjectMatch = true;
const PropertySet* settings = application.getServiceProvider().getPolicySettings(policyId);
pair<bool,bool> validate = settings->getBool("validate");
- shibsp::SecurityPolicy policy(application, NULL, validate.first && validate.second, policyId);
+ shibsp::SecurityPolicy policy(application, nullptr, validate.first && validate.second, policyId);
policy.getAudiences().push_back(relyingParty->getXMLString("entityID").second);
MetadataCredentialCriteria mcc(*AA);
shibsp::SOAPClient soaper(policy);
auto_ptr_XMLCh binding(samlconstants::SAML1_BINDING_SOAP);
- saml1p::Response* response=NULL;
+ saml1p::Response* response=nullptr;
const vector<AttributeService*>& endpoints=AA->getAttributeServices();
for (vector<AttributeService*>::const_iterator ep=endpoints.begin(); !response && ep!=endpoints.end(); ++ep) {
if (!XMLString::equals((*ep)->getBinding(),binding.get()) || !(*ep)->getLocation())
m_log.error("unable to obtain a SAML response from attribute authority");
return false;
}
- else if (!response->getStatus() || !response->getStatus()->getStatusCode() || response->getStatus()->getStatusCode()->getValue()==NULL ||
+ else if (!response->getStatus() || !response->getStatus()->getStatusCode() || response->getStatus()->getStatusCode()->getValue()==nullptr ||
*(response->getStatus()->getStatusCode()->getValue()) != saml1p::StatusCode::SUCCESS) {
delete response;
m_log.error("attribute authority returned a SAML error");
for (vector<saml1::AttributeStatement*>::const_iterator s = statements.begin(); s!=statements.end(); ++s) {
if (m_subjectMatch) {
// Check for subject match.
- const NameIdentifier* respName = (*s)->getSubject() ? (*s)->getSubject()->getNameIdentifier() : NULL;
+ const NameIdentifier* respName = (*s)->getSubject() ? (*s)->getSubject()->getNameIdentifier() : nullptr;
if (!respName || !XMLString::equals(respName->getName(), ctx.getNameID()->getName()) ||
!XMLString::equals(respName->getFormat(), ctx.getNameID()->getFormat()) ||
!XMLString::equals(respName->getNameQualifier(), ctx.getNameID()->getNameQualifier())) {
pair<bool,bool> signedAssertions = relyingParty->getBool("requireSignedAssertions");
pair<bool,const char*> encryption = relyingParty->getString("encryption");
- shibsp::SecurityPolicy policy(application, NULL, validate.first && validate.second, policyId);
+ shibsp::SecurityPolicy policy(application, nullptr, validate.first && validate.second, policyId);
policy.getAudiences().push_back(relyingParty->getXMLString("entityID").second);
MetadataCredentialCriteria mcc(*AA);
shibsp::SOAPClient soaper(policy);
auto_ptr_XMLCh binding(samlconstants::SAML20_BINDING_SOAP);
- saml2p::StatusResponseType* srt=NULL;
+ saml2p::StatusResponseType* srt=nullptr;
const vector<AttributeService*>& endpoints=AA->getAttributeServices();
for (vector<AttributeService*>::const_iterator ep=endpoints.begin(); !srt && ep!=endpoints.end(); ++ep) {
if (!XMLString::equals((*ep)->getBinding(),binding.get()) || !(*ep)->getLocation())
return true;
}
- saml2::Assertion* newtoken = NULL;
+ saml2::Assertion* newtoken = nullptr;
const vector<saml2::Assertion*>& assertions = const_cast<const saml2p::Response*>(response)->getAssertions();
if (assertions.empty()) {
// Check for encryption.
if (m_subjectMatch) {
// Check for subject match.
bool ownedName = false;
- NameID* respName = newtoken->getSubject() ? newtoken->getSubject()->getNameID() : NULL;
+ NameID* respName = newtoken->getSubject() ? newtoken->getSubject()->getNameID() : nullptr;
if (!respName) {
// Check for encryption.
- EncryptedID* encname = newtoken->getSubject() ? newtoken->getSubject()->getEncryptedID() : NULL;
+ EncryptedID* encname = newtoken->getSubject() ? newtoken->getSubject()->getEncryptedID() : nullptr;
if (encname) {
CredentialResolver* cr=application.getCredentialResolver();
if (!cr)
}
}
- auto_ptr<NameID> nameIDwrapper(ownedName ? respName : NULL);
+ auto_ptr<NameID> nameIDwrapper(ownedName ? respName : nullptr);
if (!respName || !XMLString::equals(respName->getName(), ctx.getNameID()->getName()) ||
!XMLString::equals(respName->getFormat(), ctx.getNameID()->getFormat()) ||
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SimpleAggregationContext(const Application& application, const Session& session)
: m_app(application),
m_session(&session),
- m_nameid(NULL),
- m_entityid(NULL),
+ m_nameid(nullptr),
+ m_entityid(nullptr),
m_class(XMLString::transcode(session.getAuthnContextClassRef())),
m_decl(XMLString::transcode(session.getAuthnContextDeclRef())),
- m_inputTokens(NULL),
- m_inputAttributes(NULL) {
+ m_inputTokens(nullptr),
+ m_inputAttributes(nullptr) {
}
SimpleAggregationContext(
const Application& application,
- const NameID* nameid=NULL,
- const XMLCh* entityID=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const vector<const opensaml::Assertion*>* tokens=NULL,
- const vector<shibsp::Attribute*>* attributes=NULL
+ const NameID* nameid=nullptr,
+ const XMLCh* entityID=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const vector<const opensaml::Assertion*>* tokens=nullptr,
+ const vector<shibsp::Attribute*>* attributes=nullptr
) : m_app(application),
- m_session(NULL),
+ m_session(nullptr),
m_nameid(nameid),
- m_entityid(entityID ? XMLString::transcode(entityID) : NULL),
+ m_entityid(entityID ? XMLString::transcode(entityID) : nullptr),
m_class(const_cast<XMLCh*>(authncontext_class)),
m_decl(const_cast<XMLCh*>(authncontext_decl)),
m_inputTokens(tokens),
const Application& application,
const EntityDescriptor* issuer,
const XMLCh* protocol,
- const NameID* nameid=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const vector<const opensaml::Assertion*>* tokens=NULL,
- const vector<shibsp::Attribute*>* attributes=NULL
+ const NameID* nameid=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const vector<const opensaml::Assertion*>* tokens=nullptr,
+ const vector<shibsp::Attribute*>* attributes=nullptr
) const {
return new SimpleAggregationContext(
- application, nameid, (issuer ? issuer->getEntityID() : NULL), authncontext_class, authncontext_decl, tokens, attributes
+ application, nameid, (issuer ? issuer->getEntityID() : nullptr), authncontext_class, authncontext_decl, tokens, attributes
);
}
};
SimpleAggregationResolver::SimpleAggregationResolver(const DOMElement* e)
- : m_log(Category::getInstance(SHIBSP_LOGCAT".AttributeResolver.SimpleAggregation")), m_subjectMatch(false), m_metadata(NULL), m_trust(NULL)
+ : m_log(Category::getInstance(SHIBSP_LOGCAT".AttributeResolver.SimpleAggregation")), m_subjectMatch(false), m_metadata(nullptr), m_trust(nullptr)
{
#ifdef _DEBUG
xmltooling::NDC ndc("SimpleAggregationResolver");
#endif
- const XMLCh* pid = e ? e->getAttributeNS(NULL, policyId) : NULL;
+ const XMLCh* pid = e ? e->getAttributeNS(nullptr, policyId) : nullptr;
if (pid && *pid) {
auto_ptr_char temp(pid);
m_policyId = temp.get();
}
- pid = e ? e->getAttributeNS(NULL, subjectMatch) : NULL;
+ pid = e ? e->getAttributeNS(nullptr, subjectMatch) : nullptr;
if (pid && (*pid == chLatin_t || *pid == chDigit_1))
m_subjectMatch = true;
- pid = e ? e->getAttributeNS(NULL, attributeId) : NULL;
+ pid = e ? e->getAttributeNS(nullptr, attributeId) : nullptr;
if (pid && *pid) {
char* dup = XMLString::transcode(pid);
char* pos;
if (pos)
*pos=0;
m_attributeIds.push_back(start);
- start = pos ? pos+1 : NULL;
+ start = pos ? pos+1 : nullptr;
}
XMLString::release(&dup);
- pid = e->getAttributeNS(NULL, format);
+ pid = e->getAttributeNS(nullptr, format);
if (pid && *pid)
m_format = pid;
}
DOMElement* child = XMLHelper::getFirstChildElement(e, _MetadataProvider);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL, _type));
+ auto_ptr_char type(child->getAttributeNS(nullptr, _type));
if (!type.get() || !*type.get())
throw ConfigurationException("MetadataProvider element missing type attribute.");
m_log.info("building MetadataProvider of type %s...", type.get());
child = XMLHelper::getFirstChildElement(e, _TrustEngine);
if (child) {
try {
- auto_ptr_char type(child->getAttributeNS(NULL, _type));
+ auto_ptr_char type(child->getAttributeNS(nullptr, _type));
if (!type.get() || !*type.get())
throw ConfigurationException("TrustEngine element missing type attribute.");
m_log.info("building TrustEngine of type %s...", type.get());
const Application& application = ctx.getApplication();
MetadataProviderCriteria mc(application, entityID, &AttributeAuthorityDescriptor::ELEMENT_QNAME, samlconstants::SAML20P_NS);
Locker mlocker(m_metadata);
- const AttributeAuthorityDescriptor* AA=NULL;
+ const AttributeAuthorityDescriptor* AA=nullptr;
pair<const EntityDescriptor*,const RoleDescriptor*> mdresult =
(m_metadata ? m_metadata : application.getMetadataProvider())->getEntityDescriptor(mc);
if (!mdresult.first) {
pair<bool,bool> signedAssertions = relyingParty->getBool("requireSignedAssertions");
pair<bool,const char*> encryption = relyingParty->getString("encryption");
- shibsp::SecurityPolicy policy(application, NULL, validate.first && validate.second, policyId);
+ shibsp::SecurityPolicy policy(application, nullptr, validate.first && validate.second, policyId);
if (m_metadata)
policy.setMetadataProvider(m_metadata);
if (m_trust)
shibsp::SOAPClient soaper(policy);
auto_ptr_XMLCh binding(samlconstants::SAML20_BINDING_SOAP);
- saml2p::StatusResponseType* srt=NULL;
+ saml2p::StatusResponseType* srt=nullptr;
const vector<AttributeService*>& endpoints=AA->getAttributeServices();
for (vector<AttributeService*>::const_iterator ep=endpoints.begin(); !srt && ep!=endpoints.end(); ++ep) {
if (!XMLString::equals((*ep)->getBinding(),binding.get()) || !(*ep)->getLocation())
return true;
}
- saml2::Assertion* newtoken = NULL;
+ saml2::Assertion* newtoken = nullptr;
const vector<saml2::Assertion*>& assertions = const_cast<const saml2p::Response*>(response)->getAssertions();
if (assertions.empty()) {
// Check for encryption.
if (m_subjectMatch) {
// Check for subject match.
bool ownedName = false;
- NameID* respName = newtoken->getSubject() ? newtoken->getSubject()->getNameID() : NULL;
+ NameID* respName = newtoken->getSubject() ? newtoken->getSubject()->getNameID() : nullptr;
if (!respName) {
// Check for encryption.
- EncryptedID* encname = newtoken->getSubject() ? newtoken->getSubject()->getEncryptedID() : NULL;
+ EncryptedID* encname = newtoken->getSubject() ? newtoken->getSubject()->getEncryptedID() : nullptr;
if (encname) {
CredentialResolver* cr=application.getCredentialResolver();
if (!cr)
}
}
- auto_ptr<NameID> nameIDwrapper(ownedName ? respName : NULL);
+ auto_ptr<NameID> nameIDwrapper(ownedName ? respName : nullptr);
if (!respName || !XMLString::equals(respName->getName(), name->getName()) ||
!XMLString::equals(respName->getFormat(), name->getFormat()) ||
SimpleAggregationContext& qctx = dynamic_cast<SimpleAggregationContext&>(ctx);
// First we manufacture the appropriate NameID to use.
- NameID* n=NULL;
+ NameID* n=nullptr;
for (vector<string>::const_iterator a = m_attributeIds.begin(); !n && a != m_attributeIds.end(); ++a) {
- const Attribute* attr=NULL;
+ const Attribute* attr=nullptr;
if (qctx.getSession()) {
// Input attributes should be available via multimap.
pair<multimap<string,const Attribute*>::const_iterator, multimap<string,const Attribute*>::const_iterator> range =
class XMLExtractor : public AttributeExtractor, public ReloadableXMLFile
{
public:
- XMLExtractor(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AttributeExtractor.XML")), m_impl(NULL) {
+ XMLExtractor(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AttributeExtractor.XML")), m_impl(nullptr) {
background_load();
}
~XMLExtractor() {
XMLExtractorImpl::XMLExtractorImpl(const DOMElement* e, Category& log)
: m_log(log),
- m_document(NULL),
- m_policyId(e ? e->getAttributeNS(NULL, metadataPolicyId) : NULL),
- m_metadata(NULL),
- m_trust(NULL),
- m_filter(NULL),
+ m_document(nullptr),
+ m_policyId(e ? e->getAttributeNS(nullptr, metadataPolicyId) : nullptr),
+ m_metadata(nullptr),
+ m_trust(nullptr),
+ m_filter(nullptr),
m_entityAssertions(true),
- m_attrLock(NULL)
+ m_attrLock(nullptr)
{
#ifdef _DEBUG
xmltooling::NDC ndc("XMLExtractorImpl");
DOMElement* child = XMLHelper::getFirstChildElement(e, shibspconstants::SHIB2ATTRIBUTEMAP_NS, _MetadataProvider);
if (child) {
try {
- auto_ptr_char type(child->getAttributeNS(NULL, _type));
+ auto_ptr_char type(child->getAttributeNS(nullptr, _type));
if (!type.get() || !*type.get())
throw ConfigurationException("MetadataProvider element missing type attribute.");
m_log.info("building MetadataProvider of type %s...", type.get());
child = XMLHelper::getFirstChildElement(e, shibspconstants::SHIB2ATTRIBUTEMAP_NS, _TrustEngine);
if (child) {
try {
- auto_ptr_char type(child->getAttributeNS(NULL, _type));
+ auto_ptr_char type(child->getAttributeNS(nullptr, _type));
if (!type.get() || !*type.get())
throw ConfigurationException("TrustEngine element missing type attribute.");
m_log.info("building TrustEngine of type %s...", type.get());
child = XMLHelper::getFirstChildElement(e, shibspconstants::SHIB2ATTRIBUTEMAP_NS, _AttributeFilter);
if (child) {
try {
- auto_ptr_char type(child->getAttributeNS(NULL, _type));
+ auto_ptr_char type(child->getAttributeNS(nullptr, _type));
if (!type.get() || !*type.get())
throw ConfigurationException("AttributeFilter element missing type attribute.");
m_log.info("building AttributeFilter of type %s...", type.get());
child = XMLHelper::getFirstChildElement(e, shibspconstants::SHIB2ATTRIBUTEMAP_NS, saml1::Attribute::LOCAL_NAME);
while (child) {
// Check for missing name or id.
- const XMLCh* name = child->getAttributeNS(NULL, _name);
+ const XMLCh* name = child->getAttributeNS(nullptr, _name);
if (!name || !*name) {
m_log.warn("skipping Attribute with no name");
child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, saml1::Attribute::LOCAL_NAME);
continue;
}
- auto_ptr_char id(child->getAttributeNS(NULL, _id));
+ auto_ptr_char id(child->getAttributeNS(nullptr, _id));
if (!id.get() || !*id.get()) {
m_log.warn("skipping Attribute with no id");
child = XMLHelper::getNextSiblingElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, saml1::Attribute::LOCAL_NAME);
continue;
}
- AttributeDecoder* decoder=NULL;
+ AttributeDecoder* decoder=nullptr;
try {
DOMElement* dchild = XMLHelper::getFirstChildElement(child, shibspconstants::SHIB2ATTRIBUTEMAP_NS, _AttributeDecoder);
if (dchild) {
decoder = SPConfig::getConfig().AttributeDecoderManager.newPlugin(*q.get(), dchild);
}
if (!decoder)
- decoder = SPConfig::getConfig().AttributeDecoderManager.newPlugin(StringAttributeDecoderType, NULL);
+ decoder = SPConfig::getConfig().AttributeDecoderManager.newPlugin(StringAttributeDecoderType, nullptr);
}
catch (exception& ex) {
m_log.error("skipping Attribute (%s), error building AttributeDecoder: %s", id.get(), ex.what());
}
// Empty NameFormat implies the usual Shib URI naming defaults.
- const XMLCh* format = child->getAttributeNS(NULL, nameFormat);
+ const XMLCh* format = child->getAttributeNS(nullptr, nameFormat);
if (!format || XMLString::equals(format, shibspconstants::SHIB1_ATTRIBUTE_NAMESPACE_URI) ||
XMLString::equals(format, saml2::Attribute::URI_REFERENCE))
format = &chNull; // ignore default Format/Namespace values
decl.second.push_back(id.get());
m_attributeIds.push_back(id.get());
- name = child->getAttributeNS(NULL, _aliases);
+ name = child->getAttributeNS(nullptr, _aliases);
if (name && *name) {
auto_ptr_char aliases(name);
char* pos;
else {
m_log.warn("skipping alias, REMOTE_USER is a reserved name");
}
- start = pos ? pos+1 : NULL;
+ start = pos ? pos+1 : nullptr;
}
}
const vector<saml2::Attribute*>& attrs = container->getAttributes();
for (vector<saml2::Attribute*>::const_iterator attr = attrs.begin(); attr != attrs.end(); ++attr) {
try {
- extractAttributes(application, NULL, relyingParty, *(*attr), holding);
+ extractAttributes(application, nullptr, relyingParty, *(*attr), holding);
}
catch (...) {
if (useCache)
}
else {
// Check subject.
- const NameID* subject = (*assert)->getSubject() ? (*assert)->getSubject()->getNameID() : NULL;
+ const NameID* subject = (*assert)->getSubject() ? (*assert)->getSubject()->getNameID() : nullptr;
if (!subject ||
!XMLString::equals(subject->getFormat(), NameID::ENTITY) ||
!XMLString::equals(subject->getName(), entityID)) {
if (m_trust)
policy.setTrustEngine(m_trust);
// Populate recipient as audience.
- const XMLCh* issuer = (*assert)->getIssuer() ? (*assert)->getIssuer()->getName() : NULL;
+ const XMLCh* issuer = (*assert)->getIssuer() ? (*assert)->getIssuer()->getName() : nullptr;
policy.getAudiences().push_back(application.getRelyingParty(issuer)->getXMLString("entityID").second);
// Extract assertion information for policy.
// Override the asserting/relying party names based on this new issuer.
const EntityDescriptor* inlineEntity =
- policy.getIssuerMetadata() ? dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL;
- auto_ptr_char inlineAssertingParty(inlineEntity ? inlineEntity->getEntityID() : NULL);
+ policy.getIssuerMetadata() ? dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr;
+ auto_ptr_char inlineAssertingParty(inlineEntity ? inlineEntity->getEntityID() : nullptr);
relyingParty = application.getRelyingParty(inlineEntity)->getString("entityID").second;
const vector<saml2::Attribute*>& attrs2 =
const_cast<const saml2::AttributeStatement*>(tokencopy->getAttributeStatements().front())->getAttributes();
if (!m_impl)
return;
- const EntityDescriptor* entity = issuer ? dynamic_cast<const EntityDescriptor*>(issuer->getParent()) : NULL;
+ const EntityDescriptor* entity = issuer ? dynamic_cast<const EntityDescriptor*>(issuer->getParent()) : nullptr;
const char* relyingParty = application.getRelyingParty(entity)->getString("entityID").second;
// Check for statements.
if (XMLString::equals(xmlObject.getElementQName().getLocalPart(), saml1::AttributeStatement::LOCAL_NAME)) {
const saml2::AttributeStatement* statement2 = dynamic_cast<const saml2::AttributeStatement*>(&xmlObject);
if (statement2) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *statement2, attributes);
// Handle EncryptedAttributes inline so we have access to the role descriptor.
const vector<saml2::EncryptedAttribute*>& encattrs = statement2->getEncryptedAttributes();
const saml1::AttributeStatement* statement1 = dynamic_cast<const saml1::AttributeStatement*>(&xmlObject);
if (statement1) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *statement1, attributes);
return;
}
if (XMLString::equals(xmlObject.getElementQName().getLocalPart(), saml1::Assertion::LOCAL_NAME)) {
const saml2::Assertion* token2 = dynamic_cast<const saml2::Assertion*>(&xmlObject);
if (token2) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
const vector<saml2::AttributeStatement*>& statements = token2->getAttributeStatements();
for (vector<saml2::AttributeStatement*>::const_iterator s = statements.begin(); s!=statements.end(); ++s) {
m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *(*s), attributes);
const saml1::Assertion* token1 = dynamic_cast<const saml1::Assertion*>(&xmlObject);
if (token1) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
const vector<saml1::AttributeStatement*>& statements = token1->getAttributeStatements();
for (vector<saml1::AttributeStatement*>::const_iterator s = statements.begin(); s!=statements.end(); ++s)
m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *(*s), attributes);
// Check for metadata.
if (XMLString::equals(xmlObject.getElementQName().getNamespaceURI(), samlconstants::SAML20MD_NS)) {
const RoleDescriptor* roleToExtract = dynamic_cast<const RoleDescriptor*>(&xmlObject);
- const EntityDescriptor* entityToExtract = roleToExtract ? dynamic_cast<const EntityDescriptor*>(roleToExtract->getParent()) : NULL;
+ const EntityDescriptor* entityToExtract = roleToExtract ? dynamic_cast<const EntityDescriptor*>(roleToExtract->getParent()) : nullptr;
if (!entityToExtract)
throw AttributeExtractionException("Unable to extract attributes, unknown metadata object type.");
const Extensions* ext = entityToExtract->getExtensions();
m_impl->extractAttributes(
application,
dynamic_cast<const ObservableMetadataProvider*>(application.getMetadataProvider(false)),
- NULL, // not an entity, so inline assertions won't be processed
+ nullptr, // not an entity, so inline assertions won't be processed
relyingParty,
*ext,
attributes
// Check for attributes.
if (XMLString::equals(xmlObject.getElementQName().getLocalPart(), saml1::Attribute::LOCAL_NAME)) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
const saml2::Attribute* attr2 = dynamic_cast<const saml2::Attribute*>(&xmlObject);
if (attr2)
return m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *attr2, attributes);
// Check for NameIDs.
const NameID* name2 = dynamic_cast<const NameID*>(&xmlObject);
if (name2) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
return m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *name2, attributes);
}
const NameIdentifier* name1 = dynamic_cast<const NameIdentifier*>(&xmlObject);
if (name1) {
- auto_ptr_char assertingParty(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char assertingParty(entity ? entity->getEntityID() : nullptr);
return m_impl->extractAttributes(application, assertingParty.get(), relyingParty, *name1, attributes);
}
pair<bool,DOMElement*> raw = ReloadableXMLFile::load();
// If we own it, wrap it.
- XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : NULL);
+ XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : nullptr);
XMLExtractorImpl* impl = new XMLExtractorImpl(raw.second, m_log);
delete m_impl;
m_impl = impl;
- return make_pair(false,(DOMElement*)NULL);
+ return make_pair(false,(DOMElement*)nullptr);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
bool foundEndpoint = false;
auto_ptr_XMLCh binding(samlconstants::SAML1_BINDING_SOAP);
- saml1p::Response* response=NULL;
+ saml1p::Response* response=nullptr;
const vector<ArtifactResolutionService*>& endpoints=idpDescriptor.getArtifactResolutionServices();
for (vector<ArtifactResolutionService*>::const_iterator ep=endpoints.begin(); !response && ep!=endpoints.end(); ++ep) {
try {
throw MetadataException("No compatible endpoint found in issuer's metadata.");
else if (!response)
throw BindingException("Unable to resolve artifact(s) into a SAML response.");
- const xmltooling::QName* code = (response->getStatus() && response->getStatus()->getStatusCode()) ? response->getStatus()->getStatusCode()->getValue() : NULL;
+ const xmltooling::QName* code = (response->getStatus() && response->getStatus()->getStatusCode()) ? response->getStatus()->getStatusCode()->getValue() : nullptr;
if (!code || *code != saml1p::StatusCode::SUCCESS) {
delete response;
throw BindingException("Identity provider returned a SAML error in response to artifact(s).");
bool foundEndpoint = false;
auto_ptr_XMLCh binding(samlconstants::SAML20_BINDING_SOAP);
- ArtifactResponse* response=NULL;
+ ArtifactResponse* response=nullptr;
const vector<ArtifactResolutionService*>& endpoints=ssoDescriptor.getArtifactResolutionServices();
for (vector<ArtifactResolutionService*>::const_iterator ep=endpoints.begin(); !response && ep!=endpoints.end(); ++ep) {
try {
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
using namespace std;
SOAPClient::SOAPClient(SecurityPolicy& policy)
- : opensaml::SOAPClient(policy), m_app(policy.getApplication()), m_relyingParty(NULL), m_credResolver(NULL)
+ : opensaml::SOAPClient(policy), m_app(policy.getApplication()), m_relyingParty(nullptr), m_credResolver(nullptr)
{
}
to.setXMLAlgorithm(sigalg.second);
const Credential* cred = m_credResolver->resolve(&to);
// Reset criteria back.
- to.setKeyAlgorithm(NULL);
+ to.setKeyAlgorithm(nullptr);
to.setKeySize(0);
to.getKeyNames().clear();
// Sign it. The marshalling step in the base class should be a no-op.
vector<Signature*> sigs(1,sig);
- env.marshall((DOMDocument*)NULL,&sigs,cred);
+ env.marshall((DOMDocument*)nullptr,&sigs,cred);
}
}
}
void SOAPClient::reset()
{
- m_relyingParty = NULL;
+ m_relyingParty = nullptr;
if (m_credResolver)
m_credResolver->unlock();
- m_credResolver = NULL;
+ m_credResolver = nullptr;
opensaml::SOAPClient::reset();
}
AbstractHandler(
const xercesc::DOMElement* e,
xmltooling::logging::Category& log,
- xercesc::DOMNodeFilter* filter=NULL,
- const std::map<std::string,std::string>* remapper=NULL
+ xercesc::DOMNodeFilter* filter=nullptr,
+ const std::map<std::string,std::string>* remapper=nullptr
);
void log(SPRequest::SPLogLevel level, const std::string& msg) const;
*/
virtual void checkError(
const xmltooling::XMLObject* response,
- const opensaml::saml2md::RoleDescriptor* role=NULL
+ const opensaml::saml2md::RoleDescriptor* role=nullptr
) const;
/**
* @param msg optional message to pass back
*/
void fillStatus(
- opensaml::saml2p::StatusResponseType& response, const XMLCh* code, const XMLCh* subcode=NULL, const char* msg=NULL
+ opensaml::saml2p::StatusResponseType& response, const XMLCh* code, const XMLCh* subcode=nullptr, const char* msg=nullptr
) const;
/**
* @param name property name
* @param request reference to incoming request
* @param type bitmask of property sources to use
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
std::pair<bool,bool> getBool(const char* name, const SPRequest& request, unsigned int type=HANDLER_PROPERTY_ALL) const;
* @param name property name
* @param request reference to incoming request
* @param type bitmask of property sources to use
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
std::pair<bool,const char*> getString(const char* name, const SPRequest& request, unsigned int type=HANDLER_PROPERTY_ALL) const;
* @param name property name
* @param request reference to incoming request
* @param type bitmask of property sources to use
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
std::pair<bool,unsigned int> getUnsignedInt(const char* name, const SPRequest& request, unsigned int type=HANDLER_PROPERTY_ALL) const;
* @param name property name
* @param request reference to incoming request
* @param type bitmask of property sources to use
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
std::pair<bool,int> getInt(const char* name, const SPRequest& request, unsigned int type=HANDLER_PROPERTY_ALL) const;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const xercesc::DOMElement* e,
const char* appId,
xmltooling::logging::Category& log,
- xercesc::DOMNodeFilter* filter=NULL,
- const std::map<std::string,std::string>* remapper=NULL
+ xercesc::DOMNodeFilter* filter=nullptr,
+ const std::map<std::string,std::string>* remapper=nullptr
);
/**
*/
ResolutionContext* resolveAttributes(
const Application& application,
- const opensaml::saml2md::RoleDescriptor* issuer=NULL,
- const XMLCh* protocol=NULL,
- const opensaml::saml1::NameIdentifier* v1nameid=NULL,
- const opensaml::saml2::NameID* nameid=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const std::vector<const opensaml::Assertion*>* tokens=NULL
+ const opensaml::saml2md::RoleDescriptor* issuer=nullptr,
+ const XMLCh* protocol=nullptr,
+ const opensaml::saml1::NameIdentifier* v1nameid=nullptr,
+ const opensaml::saml2::NameID* nameid=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const std::vector<const opensaml::Assertion*>* tokens=nullptr
) const;
public:
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const Application& application,
const xmltooling::HTTPRequest& request,
xmltooling::HTTPResponse& response,
- const std::map<std::string,std::string>* params=NULL
+ const std::map<std::string,std::string>* params=nullptr
) const;
/**
const xmltooling::HTTPRequest& request,
xmltooling::HTTPResponse& response,
bool local=true,
- const char* status=NULL
+ const char* status=nullptr
) const;
/**
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param certs true iff client certificates should be available for the remote request
* @return the input dataflow object
*/
- DDF wrap(const SPRequest& request, const std::vector<std::string>* headers=NULL, bool certs=false) const;
+ DDF wrap(const SPRequest& request, const std::vector<std::string>* headers=nullptr, bool certs=false) const;
/**
* Unwraps a response by examining an incoming data flow to determine
if (storage) {
string rsKey;
generateRandomHex(rsKey,5);
- if (!storage->createString("RelayState", rsKey.c_str(), relayState.c_str(), time(NULL) + 600))
+ if (!storage->createString("RelayState", rsKey.c_str(), relayState.c_str(), time(nullptr) + 600))
throw IOException("Attempted to insert duplicate storage key.");
relayState = string(mech.second-3) + ':' + rsKey;
}
AbstractHandler::AbstractHandler(
const DOMElement* e, Category& log, DOMNodeFilter* filter, const map<string,string>* remapper
) : m_log(log), m_configNS(shibspconstants::SHIB2SPCONFIG_NS) {
- load(e,NULL,filter,remapper);
+ load(e,nullptr,filter,remapper);
}
AbstractHandler::~AbstractHandler()
const saml2p::Status* status = r2->getStatus();
if (status) {
const saml2p::StatusCode* sc = status->getStatusCode();
- const XMLCh* code = sc ? sc->getValue() : NULL;
+ const XMLCh* code = sc ? sc->getValue() : nullptr;
if (code && !XMLString::equals(code,saml2p::StatusCode::SUCCESS)) {
FatalProfileException ex("SAML response contained an error.");
annotateException(&ex, role, status); // throws it
const saml1p::Status* status = r1->getStatus();
if (status) {
const saml1p::StatusCode* sc = status->getStatusCode();
- const xmltooling::QName* code = sc ? sc->getValue() : NULL;
+ const xmltooling::QName* code = sc ? sc->getValue() : nullptr;
if (code && *code != saml1p::StatusCode::SUCCESS) {
FatalProfileException ex("SAML response contained an error.");
ex.addProperty("statusCode", code->toString().c_str());
bool signIfPossible
) const
{
- const EntityDescriptor* entity = role ? dynamic_cast<const EntityDescriptor*>(role->getParent()) : NULL;
+ const EntityDescriptor* entity = role ? dynamic_cast<const EntityDescriptor*>(role->getParent()) : nullptr;
const PropertySet* relyingParty = application.getRelyingParty(entity);
pair<bool,const char*> flag = signIfPossible ? make_pair(true,(const char*)"true") : relyingParty->getString("signing");
if (role && flag.first &&
CredentialResolver* credResolver=application.getCredentialResolver();
if (credResolver) {
Locker credLocker(credResolver);
- const Credential* cred = NULL;
+ const Credential* cred = nullptr;
pair<bool,const char*> keyName = relyingParty->getString("keyName");
pair<bool,const XMLCh*> sigalg = relyingParty->getXMLString("signingAlg");
if (role) {
rsKey = SAMLArtifact::toHex(rsKey);
ostringstream out;
out << postData;
- if (!storage->createString("PostData", rsKey.c_str(), out.str().c_str(), time(NULL) + 600))
+ if (!storage->createString("PostData", rsKey.c_str(), out.str().c_str(), time(nullptr) + 600))
throw IOException("Attempted to insert duplicate storage key.");
postkey = string(mech.second-3) + ':' + rsKey;
}
plimit.second = 1024 * 1024;
if (plimit.second == 0 || request.getContentLength() <= plimit.second) {
CGIParser cgi(request);
- pair<CGIParser::walker,CGIParser::walker> params = cgi.getParameters(NULL);
+ pair<CGIParser::walker,CGIParser::walker> params = cgi.getParameters(nullptr);
if (params.first == params.second)
return DDF("parameters").list();
DDF child;
return getString(name);
}
- return pair<bool,const char*>(false,NULL);
+ return pair<bool,const char*>(false,nullptr);
}
pair<bool,unsigned int> AbstractHandler::getUnsignedInt(const char* name, const SPRequest& request, unsigned int type) const
if (type & HANDLER_PROPERTY_REQUEST) {
const char* param = request.getParameter(name);
if (param && *param)
- return pair<bool,unsigned int>(true, strtol(param,NULL,10));
+ return pair<bool,unsigned int>(true, strtol(param,nullptr,10));
}
if (type & HANDLER_PROPERTY_MAP) {
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const DOMElement* e, const char* appId, Category& log, DOMNodeFilter* filter, const map<string,string>* remapper
) : AbstractHandler(e, log, filter, remapper)
#ifndef SHIBSP_LITE
- ,m_decoder(NULL), m_role(samlconstants::SAML20MD_NS, opensaml::saml2md::IDPSSODescriptor::LOCAL_NAME)
+ ,m_decoder(nullptr), m_role(samlconstants::SAML20MD_NS, opensaml::saml2md::IDPSSODescriptor::LOCAL_NAME)
#endif
{
if (!e)
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for new session", aid ? aid : "(missing)");
auto_ptr<HTTPRequest> req(getRequest(in));
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
recoverRelayState(application, httpRequest, httpResponse, relayState);
implementProtocol(application, httpRequest, httpResponse, *(policy.get()), settings, *msg.get());
- auto_ptr_char issuer(policy->getIssuer() ? policy->getIssuer()->getName() : NULL);
+ auto_ptr_char issuer(policy->getIssuer() ? policy->getIssuer()->getName() : nullptr);
// History cookie.
if (issuer.get() && *issuer.get())
if (mprefix.first) {
m_log.debug("extracting metadata-derived attributes...");
try {
- // We pass NULL for "issuer" because the IdP isn't the one asserting metadata-based attributes.
- extractor->extractAttributes(application, NULL, *issuer, resolvedAttributes);
+ // We pass nullptr for "issuer" because the IdP isn't the one asserting metadata-based attributes.
+ extractor->extractAttributes(application, nullptr, *issuer, resolvedAttributes);
for (vector<Attribute*>::iterator a = resolvedAttributes.begin(); a != resolvedAttributes.end(); ++a) {
vector<string>& ids = (*a)->getAliases();
for (vector<string>::iterator id = ids.begin(); id != ids.end(); ++id)
auto_ptr<ResolutionContext> ctx(
resolver->createResolutionContext(
application,
- issuer ? dynamic_cast<const saml2md::EntityDescriptor*>(issuer->getParent()) : NULL,
+ issuer ? dynamic_cast<const saml2md::EntityDescriptor*>(issuer->getParent()) : nullptr,
protocol,
nameid,
authncontext_class,
if (!resolvedAttributes.empty())
return new DummyContext(resolvedAttributes);
- return NULL;
+ return nullptr;
}
void AssertionConsumerService::extractMessageDetails(const Assertion& assertion, const XMLCh* protocol, opensaml::SecurityPolicy& policy) const
response.setCookie(CommonDomainCookie::CDCName, c.c_str());
}
else {
- time_t now=time(NULL) + (days.second * 24 * 60 * 60);
+ time_t now=time(nullptr) + (days.second * 24 * 60 * 60);
#ifdef HAVE_GMTIME_R
struct tm res;
struct tm* ptime=gmtime_r(&now,&res);
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* AssertionLookup.cpp
*
- * Handler for looking assertions in SessionCache
+ * Handler for looking up assertions in the SessionCache.
*/
#include "internal.h"
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for assertion lookup", aid ? aid : "(missing)");
//m_log.debug("found %d client certificates", req->getClientCertificates().size());
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
throw FatalProfileException("Session cache does not support assertion lookup.");
}
- // The cache will either silently pass a session or NULL back, or throw an exception out.
+ // The cache will either silently pass a session or nullptr back, or throw an exception out.
Session* session = cache->find(application, key);
if (!session) {
m_log.error("valid session (%s) not found for assertion lookup", key);
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SPConfig& conf = SPConfig::getConfig();
// Load up the chain of handlers.
- e = e ? XMLHelper::getFirstChildElement(e, _LogoutInitiator) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, _LogoutInitiator) : nullptr;
while (e) {
- auto_ptr_char type(e->getAttributeNS(NULL,_type));
+ auto_ptr_char type(e->getAttributeNS(nullptr,_type));
if (type.get() && *(type.get())) {
try {
m_handlers.push_back(conf.LogoutInitiatorManager.newPlugin(type.get(),make_pair(e, appId)));
SPConfig& conf = SPConfig::getConfig();
// Load up the chain of handlers.
- e = e ? XMLHelper::getFirstChildElement(e, _SessionInitiator) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, _SessionInitiator) : nullptr;
while (e) {
- auto_ptr_char type(e->getAttributeNS(NULL,_type));
+ auto_ptr_char type(e->getAttributeNS(nullptr,_type));
if (type.get() && *(type.get())) {
try {
m_handlers.push_back(conf.SessionInitiatorManager.newPlugin(type.get(),make_pair(e, appId)));
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
{
string tname = string(type) + "Logout";
const PropertySet* props = application.getPropertySet("Errors");
- pair<bool,const char*> prop = props ? props->getString(tname.c_str()) : pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> prop = props ? props->getString(tname.c_str()) : pair<bool,const char*>(false,nullptr);
if (!prop.first) {
tname += ".html";
prop.second = tname.c_str();
void LogoutHandler::receive(DDF& in, ostream& out)
{
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
if (in["notify"].integer() != 1)
throw ListenerException("Unsupported operation.");
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
Category::getInstance(SHIBSP_LOGCAT".Logout").error("couldn't find application (%s) for logout", aid ? aid : "(missing)");
env->setBody(body);
ElementProxy* msg = new AnyElementImpl(shibspconstants::SHIB2SPNOTIFY_NS, LogoutNotification);
body->getUnknownXMLObjects().push_back(msg);
- msg->setAttribute(xmltooling::QName(NULL, _type), local ? _local : _global);
+ msg->setAttribute(xmltooling::QName(nullptr, _type), local ? _local : _global);
for (vector<string>::const_iterator s = sessions.begin(); s!=sessions.end(); ++s) {
auto_ptr_XMLCh temp(s->c_str());
ElementProxy* child = new AnyElementImpl(shibspconstants::SHIB2SPNOTIFY_NS, SessionID);
in.addmember("local").integer(1);
DDF s = in.addmember("sessions").list();
for (vector<string>::const_iterator i = sessions.begin(); i!=sessions.end(); ++i) {
- DDF temp = DDF(NULL).string(i->c_str());
+ DDF temp = DDF(nullptr).string(i->c_str());
s.add(temp);
}
out=application.getServiceProvider().getListenerService()->send(in);
// Find application.
const char* aid=in["application_id"].string();
const char* hurl=in["handler_url"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for metadata request", aid ? aid : "(missing)");
}
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
#ifndef SHIBSP_LITE
m_log.debug("processing metadata request");
- const PropertySet* relyingParty=NULL;
+ const PropertySet* relyingParty=nullptr;
if (entityID) {
MetadataProvider* m=application.getMetadataProvider();
Locker locker(m);
}
cache = getUnsignedInt("validUntil");
if (cache.first)
- entity->setValidUntil(time(NULL) + cache.second);
+ entity->setValidUntil(time(nullptr) + cache.second);
entity->setEntityID(relyingParty->getXMLString("entityID").second);
SPSSODescriptor* role;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
mutable CGIParser* m_parser;
mutable vector<XSECCryptoX509*> m_certs;
public:
- RemotedRequest(DDF& input) : m_input(input), m_parser(NULL) {}
+ RemotedRequest(DDF& input) : m_input(input), m_parser(nullptr) {}
virtual ~RemotedRequest() {
for_each(m_certs.begin(), m_certs.end(), xmltooling::cleanup<XSECCryptoX509>());
delete m_parser;
m_parser=new CGIParser(*this);
pair<CGIParser::walker,CGIParser::walker> bounds=m_parser->getParameters(name);
- return (bounds.first==bounds.second) ? NULL : bounds.first->second;
+ return (bounds.first==bounds.second) ? nullptr : bounds.first->second;
}
std::vector<const char*>::size_type RemotedRequest::getParameters(const char* name, std::vector<const char*>& values) const
if (!xvec.empty()) {
DDF clist = in.addmember("certificates").list();
for (vector<XSECCryptoX509*>::const_iterator x = xvec.begin(); x!=xvec.end(); ++x) {
- DDF x509 = DDF(NULL).string((*x)->getDEREncodingSB().rawCharBuffer());
+ DDF x509 = DDF(nullptr).string((*x)->getDEREncodingSB().rawCharBuffer());
clist.add(x509);
}
}
if (!xvec.empty()) {
DDF clist = in.addmember("certificates").list();
for (vector<string>::const_iterator x = xvec.begin(); x!=xvec.end(); ++x) {
- DDF x509 = DDF(NULL).string(x->c_str());
+ DDF x509 = DDF(nullptr).string(x->c_str());
clist.add(x509);
}
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* SAML1Consumer.cpp
*
- * SAML 1.x assertion consumer service
+ * SAML 1.x assertion consumer service.
*/
#include "internal.h"
SAML1Consumer(const DOMElement* e, const char* appId)
: AssertionConsumerService(e, appId, Category::getInstance(SHIBSP_LOGCAT".SSO.SAML1")) {
#ifndef SHIBSP_LITE
- m_ssoRule = NULL;
+ m_ssoRule = nullptr;
m_post = XMLString::equals(getString("Binding").second, samlconstants::SAML1_PROFILE_BROWSER_POST);
if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess))
m_ssoRule = SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(SAML1BROWSERSSO_POLICY_RULE, e);
pair<bool,int> minor = response->getMinorVersion();
// Maintain list of "legit" tokens to feed to SP subsystems.
- const AuthenticationStatement* ssoStatement=NULL;
+ const AuthenticationStatement* ssoStatement=nullptr;
vector<const opensaml::Assertion*> tokens;
// Also track "bad" tokens that we'll cache but not use.
vector<const opensaml::Assertion*> badtokens;
// With this flag on, we ignore any unsigned assertions.
- const EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL;
+ const EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr;
pair<bool,bool> flag = application.getRelyingParty(entity)->getBool("requireSignedAssertions");
// authnskew allows rejection of SSO if AuthnInstant is too old.
string contextualError;
// Ensure the BrowserSSO rule is in the policy set.
- if (find_if(policy.getRules(), _rulenamed(SAML1BROWSERSSO_POLICY_RULE)) == NULL)
+ if (find_if(policy.getRules(), _rulenamed(SAML1BROWSERSSO_POLICY_RULE)) == nullptr)
policy.getRules().push_back(m_ssoRule);
// Populate recipient as audience.
policy.getAudiences().push_back(application.getRelyingParty(entity)->getXMLString("entityID").second);
- time_t now = time(NULL);
+ time_t now = time(nullptr);
for (vector<saml1::Assertion*>::const_iterator a = assertions.begin(); a!=assertions.end(); ++a) {
try {
// Skip unsigned assertion?
// To complete processing, we need to extract and resolve attributes and then create the session.
// Normalize the SAML 1.x NameIdentifier...
- auto_ptr<NameID> nameid(n ? NameIDBuilder::buildNameID() : NULL);
+ auto_ptr<NameID> nameid(n ? NameIDBuilder::buildNameID() : nullptr);
if (n) {
nameid->setName(n->getName());
nameid->setFormat(n->getFormat());
n,
nameid.get(),
ssoStatement->getAuthenticationMethod(),
- NULL,
+ nullptr,
&tokens
)
);
(!response->getMinorVersion().first || response->getMinorVersion().second==1) ?
samlconstants::SAML11_PROTOCOL_ENUM : samlconstants::SAML10_PROTOCOL_ENUM,
nameid.get(),
- ssoStatement->getAuthenticationInstant() ? ssoStatement->getAuthenticationInstant()->getRawData() : NULL,
- NULL,
+ ssoStatement->getAuthenticationInstant() ? ssoStatement->getAuthenticationInstant()->getRawData() : nullptr,
+ nullptr,
ssoStatement->getAuthenticationMethod(),
- NULL,
+ nullptr,
&tokens,
- ctx.get() ? &ctx->getResolvedAttributes() : NULL
+ ctx.get() ? &ctx->getResolvedAttributes() : nullptr
);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SAML2ArtifactResolution::SAML2ArtifactResolution(const DOMElement* e, const char* appId)
: AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".ArtifactResolution.SAML2"))
#ifndef SHIBSP_LITE
- ,m_encoder(NULL), m_decoder(NULL), m_role(samlconstants::SAML20MD_NS, opensaml::saml2md::IDPSSODescriptor::LOCAL_NAME)
+ ,m_encoder(nullptr), m_decoder(nullptr), m_role(samlconstants::SAML20MD_NS, opensaml::saml2md::IDPSSODescriptor::LOCAL_NAME)
#endif
{
#ifndef SHIBSP_LITE
if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
try {
m_encoder = SAMLConfig::getConfig().MessageEncoderManager.newPlugin(
- getString("Binding").second,pair<const DOMElement*,const XMLCh*>(e,NULL)
+ getString("Binding").second,pair<const DOMElement*,const XMLCh*>(e,nullptr)
);
m_decoder = SAMLConfig::getConfig().MessageDecoderManager.newPlugin(
- getString("Binding").second,pair<const DOMElement*,const XMLCh*>(e,NULL)
+ getString("Binding").second,pair<const DOMElement*,const XMLCh*>(e,nullptr)
);
}
catch (exception&) {
}
else {
// When not out of process, we remote all the message processing.
- DDF out,in = wrap(request, NULL, true);
+ DDF out,in = wrap(request, nullptr, true);
DDFJanitor jin(in), jout(out);
out=request.getServiceProvider().getListenerService()->send(in);
fs->setString(msg.get());
#ifndef SHIBSP_LITE
// Use MessageEncoder to send back the fault.
- long ret = m_encoder->encode(request, fault.get(), NULL);
+ long ret = m_encoder->encode(request, fault.get(), nullptr);
fault.release();
return make_pair(true, ret);
#else
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for artifact resolution", aid ? aid : "(missing)");
//m_log.debug("found %d client certificates", req->getClientCertificates().size());
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
pair<bool,bool> flag = getBool("detailedErrors", m_configNS.get());
auto_ptr_XMLCh msg((flag.first && flag.second) ? ex.what() : "Error processing request.");
fs->setString(msg.get());
- m_encoder->encode(*resp.get(), fault.get(), NULL);
+ m_encoder->encode(*resp.get(), fault.get(), nullptr);
fault.release();
out << ret;
#else
if (!req)
throw FatalProfileException("Decoded message was not a samlp::ArtifactResolve request.");
- const EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL;
+ const EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr;
try {
- auto_ptr_char artifact(req->getArtifact() ? req->getArtifact()->getArtifact() : NULL);
+ auto_ptr_char artifact(req->getArtifact() ? req->getArtifact()->getArtifact() : nullptr);
if (!artifact.get() || !*artifact.get())
return emptyResponse(application, *req, httpResponse, entity);
- auto_ptr_char issuer(policy.getIssuer() ? policy.getIssuer()->getName() : NULL);
+ auto_ptr_char issuer(policy.getIssuer() ? policy.getIssuer()->getName() : nullptr);
m_log.info("resolving artifact (%s) for (%s)", artifact.get(), issuer.get() ? issuer.get() : "unknown");
resp->setPayload(payload.release());
long ret = sendMessage(
- *m_encoder, resp.get(), relayState.c_str(), NULL, policy.getIssuerMetadata(), application, httpResponse, "signResponses"
+ *m_encoder, resp.get(), relayState.c_str(), nullptr, policy.getIssuerMetadata(), application, httpResponse, "signResponses"
);
resp.release(); // freed by encoder
return make_pair(true,ret);
Issuer* me = IssuerBuilder::buildIssuer();
me->setName(app.getRelyingParty(recipient)->getXMLString("entityID").second);
fillStatus(*resp.get(), StatusCode::SUCCESS);
- long ret = m_encoder->encode(httpResponse, resp.get(), NULL);
+ long ret = m_encoder->encode(httpResponse, resp.get(), nullptr);
resp.release(); // freed by encoder
return make_pair(true,ret);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* SAML2Consumer.cpp
*
- * SAML 2.0 assertion consumer service
+ * SAML 2.0 assertion consumer service.
*/
#include "internal.h"
SAML2Consumer(const DOMElement* e, const char* appId)
: AssertionConsumerService(e, appId, Category::getInstance(SHIBSP_LOGCAT".SSO.SAML2")) {
#ifndef SHIBSP_LITE
- m_ssoRule = NULL;
+ m_ssoRule = nullptr;
if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess))
m_ssoRule = SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(BEARER_POLICY_RULE, e);
#endif
throw FatalProfileException("Incoming message contained no SAML assertions.");
// Maintain list of "legit" tokens to feed to SP subsystems.
- const Subject* ssoSubject=NULL;
- const AuthnStatement* ssoStatement=NULL;
+ const Subject* ssoSubject=nullptr;
+ const AuthnStatement* ssoStatement=nullptr;
vector<const opensaml::Assertion*> tokens;
// Also track "bad" tokens that we'll cache but not use.
vector<saml2::Assertion*> ownedtokens;
// With this flag on, we ignore any unsigned assertions.
- const EntityDescriptor* entity = NULL;
+ const EntityDescriptor* entity = nullptr;
pair<bool,bool> flag = make_pair(false,false);
if (alreadySecured && policy.getIssuerMetadata()) {
entity = dynamic_cast<const EntityDescriptor*>(policy.getIssuerMetadata()->getParent());
string contextualError;
// Ensure the Bearer rule is in the policy set.
- if (find_if(policy.getRules(), _rulenamed(BEARER_POLICY_RULE)) == NULL)
+ if (find_if(policy.getRules(), _rulenamed(BEARER_POLICY_RULE)) == nullptr)
policy.getRules().push_back(m_ssoRule);
// Populate recipient as audience.
policy.getAudiences().push_back(application.getRelyingParty(entity)->getXMLString("entityID").second);
- time_t now = time(NULL);
+ time_t now = time(nullptr);
for (vector<saml2::Assertion*>::const_iterator a = assertions.begin(); a!=assertions.end(); ++a) {
try {
// Skip unsigned assertion?
for (vector<saml2::EncryptedAssertion*>::const_iterator ea = encassertions.begin(); cr && ea!=encassertions.end(); ++ea) {
// Attempt to decrypt it.
- saml2::Assertion* decrypted=NULL;
+ saml2::Assertion* decrypted=nullptr;
try {
Locker credlocker(cr);
auto_ptr<MetadataCredentialCriteria> mcc(
- policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : NULL
+ policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : nullptr
);
auto_ptr<XMLObject> wrapper((*ea)->decrypt(*cr, application.getRelyingParty(entity)->getXMLString("entityID").second, mcc.get()));
decrypted = dynamic_cast<saml2::Assertion*>(wrapper.get());
else {
Locker credlocker(cr);
auto_ptr<MetadataCredentialCriteria> mcc(
- policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : NULL
+ policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : nullptr
);
try {
auto_ptr<XMLObject> decryptedID(encname->decrypt(*cr,application.getRelyingParty(entity)->getXMLString("entityID").second,mcc.get()));
application,
policy.getIssuerMetadata(),
samlconstants::SAML20P_NS,
- NULL,
+ nullptr,
ssoName,
- (authnContext && authnContext->getAuthnContextClassRef()) ? authnContext->getAuthnContextClassRef()->getReference() : NULL,
- (authnContext && authnContext->getAuthnContextDeclRef()) ? authnContext->getAuthnContextDeclRef()->getReference() : NULL,
+ (authnContext && authnContext->getAuthnContextClassRef()) ? authnContext->getAuthnContextClassRef()->getReference() : nullptr,
+ (authnContext && authnContext->getAuthnContextDeclRef()) ? authnContext->getAuthnContextDeclRef()->getReference() : nullptr,
&tokens
)
);
entity,
samlconstants::SAML20P_NS,
ssoName,
- ssoStatement->getAuthnInstant() ? ssoStatement->getAuthnInstant()->getRawData() : NULL,
+ ssoStatement->getAuthnInstant() ? ssoStatement->getAuthnInstant()->getRawData() : nullptr,
ssoStatement->getSessionIndex(),
- (authnContext && authnContext->getAuthnContextClassRef()) ? authnContext->getAuthnContextClassRef()->getReference() : NULL,
- (authnContext && authnContext->getAuthnContextDeclRef()) ? authnContext->getAuthnContextDeclRef()->getReference() : NULL,
+ (authnContext && authnContext->getAuthnContextClassRef()) ? authnContext->getAuthnContextClassRef()->getReference() : nullptr,
+ (authnContext && authnContext->getAuthnContextDeclRef()) ? authnContext->getAuthnContextDeclRef()->getReference() : nullptr,
&tokens,
- ctx.get() ? &ctx->getResolvedAttributes() : NULL
+ ctx.get() ? &ctx->getResolvedAttributes() : nullptr
);
if (ownedName)
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SAML2Logout::SAML2Logout(const DOMElement* e, const char* appId)
: AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".Logout.SAML2"))
#ifndef SHIBSP_LITE
- ,m_role(samlconstants::SAML20MD_NS, IDPSSODescriptor::LOCAL_NAME), m_decoder(NULL), m_outgoing(NULL)
+ ,m_role(samlconstants::SAML20MD_NS, IDPSSODescriptor::LOCAL_NAME), m_decoder(nullptr), m_outgoing(nullptr)
#endif
{
m_initiator = false;
MessageEncoder* encoder = conf.MessageEncoderManager.newPlugin(
getString("Binding").second, pair<const DOMElement*,const XMLCh*>(e,shibspconstants::SHIB2SPCONFIG_NS)
);
- m_encoders.insert(pair<const XMLCh*,MessageEncoder*>(NULL, encoder));
+ m_encoders.insert(pair<const XMLCh*,MessageEncoder*>(nullptr, encoder));
}
}
#endif
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for logout", aid ? aid : "(missing)");
auto_ptr<HTTPRequest> req(getRequest(in));
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
if (worked1 && worked2) {
// Successful LogoutResponse. Has to be front-channel or we couldn't be here.
return sendResponse(
- reqid.get(), StatusCode::SUCCESS, NULL, NULL, request.getParameter("RelayState"), entity.second, application, response, true
+ reqid.get(), StatusCode::SUCCESS, nullptr, nullptr, request.getParameter("RelayState"), entity.second, application, response, true
);
}
return sendResponse(
reqid.get(),
- StatusCode::RESPONDER, NULL, "Unable to fully destroy principal's session.",
+ StatusCode::RESPONDER, nullptr, "Unable to fully destroy principal's session.",
request.getParameter("RelayState"),
entity.second,
application,
else {
Locker credlocker(cr);
auto_ptr<MetadataCredentialCriteria> mcc(
- policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : NULL
+ policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : nullptr
);
try {
auto_ptr<XMLObject> decryptedID(
encname->decrypt(
*cr,
- application.getRelyingParty(policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL)->getXMLString("entityID").second,
+ application.getRelyingParty(policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr)->getXMLString("entityID").second,
mcc.get()
)
);
);
}
- auto_ptr<NameID> namewrapper(ownedName ? nameid : NULL);
+ auto_ptr<NameID> namewrapper(ownedName ? nameid : nullptr);
// Suck indexes out of the request for next steps.
set<string> indexes;
- EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL;
+ EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr;
const vector<SessionIndex*> sindexes = logoutRequest->getSessionIndexs();
for (vector<SessionIndex*>::const_iterator i = sindexes.begin(); i != sindexes.end(); ++i) {
auto_ptr_char sindex((*i)->getSessionIndex());
m_log.error("error while logging out matching sessions: %s", ex.what());
return sendResponse(
logoutRequest->getID(),
- StatusCode::RESPONDER, NULL, ex.what(),
+ StatusCode::RESPONDER, nullptr, ex.what(),
relayState.c_str(),
policy.getIssuerMetadata(),
application,
map<string,string> parammap;
if (!relayState.empty())
parammap["RelayState"] = relayState;
- auto_ptr_char entityID(entity ? entity->getEntityID() : NULL);
+ auto_ptr_char entityID(entity ? entity->getEntityID() : nullptr);
if (entityID.get())
parammap["entityID"] = entityID.get();
auto_ptr_char reqID(logoutRequest->getID());
return sendResponse(
logoutRequest->getID(),
(worked1 && worked2) ? StatusCode::SUCCESS : StatusCode::RESPONDER,
- (worked1 && worked2) ? NULL : StatusCode::PARTIAL_LOGOUT,
- NULL,
+ (worked1 && worked2) ? nullptr : StatusCode::PARTIAL_LOGOUT,
+ nullptr,
relayState.c_str(),
policy.getIssuerMetadata(),
application,
recoverRelayState(application, request, response, relayState);
// Check for partial logout.
- const StatusCode* sc = logoutResponse->getStatus() ? logoutResponse->getStatus()->getStatusCode() : NULL;
- sc = sc ? sc->getStatusCode() : NULL;
+ const StatusCode* sc = logoutResponse->getStatus() ? logoutResponse->getStatus()->getStatusCode() : nullptr;
+ sc = sc ? sc->getStatusCode() : nullptr;
if (sc && XMLString::equals(sc->getValue(), StatusCode::PARTIAL_LOGOUT))
return sendLogoutPage(application, request, response, "partial");
) const
{
// Get endpoint and encoder to use.
- const EndpointType* ep = NULL;
- const MessageEncoder* encoder = NULL;
+ const EndpointType* ep = nullptr;
+ const MessageEncoder* encoder = nullptr;
if (front) {
const IDPSSODescriptor* idp = dynamic_cast<const IDPSSODescriptor*>(role);
for (vector<const XMLCh*>::const_iterator b = m_bindings.begin(); idp && b!=m_bindings.end(); ++b) {
string m_appId;
#ifndef SHIBSP_LITE
LogoutRequest* buildRequest(
- const Application& application, const Session& session, const RoleDescriptor& role, const MessageEncoder* encoder=NULL
+ const Application& application, const Session& session, const RoleDescriptor& role, const MessageEncoder* encoder=nullptr
) const;
XMLCh* m_outgoing;
SAML2LogoutInitiator::SAML2LogoutInitiator(const DOMElement* e, const char* appId)
: AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".LogoutInitiator.SAML2")), m_appId(appId),
#ifndef SHIBSP_LITE
- m_outgoing(NULL),
+ m_outgoing(nullptr),
#endif
m_protocol(samlconstants::SAML20P_NS)
{
try {
auto_ptr_char b(start);
MessageEncoder * encoder =
- SAMLConfig::getConfig().MessageEncoderManager.newPlugin(b.get(),pair<const DOMElement*,const XMLCh*>(e,NULL));
+ SAMLConfig::getConfig().MessageEncoderManager.newPlugin(b.get(),pair<const DOMElement*,const XMLCh*>(e,nullptr));
if (encoder->isUserAgentPresent()) {
m_encoders[start] = encoder;
m_log.debug("supporting outgoing binding (%s)", b.get());
// At this point we know the front-channel is handled.
// We need the session to do any other work.
- Session* session = NULL;
+ Session* session = nullptr;
try {
session = request.getSession(false, true, false); // don't cache it and ignore all checks
if (!session)
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for logout", aid ? aid : "(missing)");
auto_ptr<HTTPRequest> req(getRequest(in));
// Set up a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
- Session* session = NULL;
+ Session* session = nullptr;
try {
- session = app->getServiceProvider().getSessionCache()->find(*app, *req.get(), NULL, NULL);
+ session = app->getServiceProvider().getSessionCache()->find(*app, *req.get(), nullptr, nullptr);
}
catch (exception& ex) {
m_log.error("error accessing current session: %s", ex.what());
);
}
- const EndpointType* ep=NULL;
- const MessageEncoder* encoder=NULL;
+ const EndpointType* ep=nullptr;
+ const MessageEncoder* encoder=nullptr;
vector<const XMLCh*>::const_iterator b;
for (b = m_bindings.begin(); b!=m_bindings.end(); ++b) {
if (ep=EndpointManager<SingleLogoutService>(role->getSingleLogoutServices()).getByBinding(*b)) {
shibsp::SOAPClient soaper(policy);
MetadataCredentialCriteria mcc(*role);
- LogoutResponse* logoutResponse=NULL;
+ LogoutResponse* logoutResponse=nullptr;
auto_ptr_XMLCh binding(samlconstants::SAML20_BINDING_SOAP);
const vector<SingleLogoutService*>& endpoints=role->getSingleLogoutServices();
for (vector<SingleLogoutService*>::const_iterator epit=endpoints.begin(); !logoutResponse && epit!=endpoints.end(); ++epit) {
}
else {
// Check the status, looking for non-success or a partial logout code.
- const StatusCode* sc = logoutResponse->getStatus() ? logoutResponse->getStatus()->getStatusCode() : NULL;
+ const StatusCode* sc = logoutResponse->getStatus() ? logoutResponse->getStatus()->getStatusCode() : nullptr;
bool partial = (!sc || !XMLString::equals(sc->getValue(), StatusCode::SUCCESS));
if (!partial && sc->getStatusCode()) {
// Success, but still need to check for partial.
if (session) {
session->unlock();
- session = NULL;
+ session = nullptr;
application.getServiceProvider().getSessionCache()->remove(application, httpRequest, &httpResponse);
}
if (session) {
session->unlock();
- session = NULL;
+ session = nullptr;
application.getServiceProvider().getSessionCache()->remove(application, httpRequest, &httpResponse);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
SAML2NameIDMgmt::SAML2NameIDMgmt(const DOMElement* e, const char* appId)
: AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".NameIDMgmt.SAML2"))
#ifndef SHIBSP_LITE
- ,m_role(samlconstants::SAML20MD_NS, IDPSSODescriptor::LOCAL_NAME), m_decoder(NULL), m_outgoing(NULL)
+ ,m_role(samlconstants::SAML20MD_NS, IDPSSODescriptor::LOCAL_NAME), m_decoder(nullptr), m_outgoing(nullptr)
#endif
{
#ifndef SHIBSP_LITE
MessageEncoder* encoder = conf.MessageEncoderManager.newPlugin(
getString("Binding").second, pair<const DOMElement*,const XMLCh*>(e,shibspconstants::SHIB2SPCONFIG_NS)
);
- m_encoders.insert(pair<const XMLCh*,MessageEncoder*>(NULL, encoder));
+ m_encoders.insert(pair<const XMLCh*,MessageEncoder*>(nullptr, encoder));
}
}
#endif
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for NameID mgmt", aid ? aid : "(missing)");
auto_ptr<HTTPRequest> req(getRequest(in));
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPResponse> resp(getResponse(ret));
);
}
- EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : NULL;
+ EntityDescriptor* entity = policy.getIssuerMetadata() ? dynamic_cast<EntityDescriptor*>(policy.getIssuerMetadata()->getParent()) : nullptr;
bool ownedName = false;
NameID* nameid = mgmtRequest->getNameID();
else {
Locker credlocker(cr);
auto_ptr<MetadataCredentialCriteria> mcc(
- policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : NULL
+ policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : nullptr
);
try {
auto_ptr<XMLObject> decryptedID(encname->decrypt(*cr,application.getRelyingParty(entity)->getXMLString("entityID").second,mcc.get()));
);
}
- auto_ptr<NameID> namewrapper(ownedName ? nameid : NULL);
+ auto_ptr<NameID> namewrapper(ownedName ? nameid : nullptr);
// For a front-channel request, we have to match the information in the request
// against the current session.
if (!session_id.empty()) {
- if (!cache->matches(application, request, entity, *nameid, NULL)) {
+ if (!cache->matches(application, request, entity, *nameid, nullptr)) {
return sendResponse(
mgmtRequest->getID(),
StatusCode::REQUESTER, StatusCode::REQUEST_DENIED, "Active session did not match NameID mgmt request.",
// Determine what's happening...
bool ownedNewID = false;
- NewID* newid = NULL;
+ NewID* newid = nullptr;
if (!mgmtRequest->getTerminate()) {
// Better be a NewID in there.
newid = mgmtRequest->getNewID();
else {
Locker credlocker(cr);
auto_ptr<MetadataCredentialCriteria> mcc(
- policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : NULL
+ policy.getIssuerMetadata() ? new MetadataCredentialCriteria(*policy.getIssuerMetadata()) : nullptr
);
try {
auto_ptr<XMLObject> decryptedID(encnewid->decrypt(*cr,application.getRelyingParty(entity)->getXMLString("entityID").second,mcc.get()));
m_log.error("NewID not found in request");
return sendResponse(
mgmtRequest->getID(),
- StatusCode::REQUESTER, NULL, "NewID not found in request.",
+ StatusCode::REQUESTER, nullptr, "NewID not found in request.",
relayState.c_str(),
policy.getIssuerMetadata(),
application,
}
}
- auto_ptr<NewID> newwrapper(ownedNewID ? newid : NULL);
+ auto_ptr<NewID> newwrapper(ownedNewID ? newid : nullptr);
// TODO: maybe support in-place modification of sessions?
/*
m_log.error("error while logging out matching sessions: %s", ex.what());
return sendResponse(
logoutRequest->getID(),
- StatusCode::RESPONDER, NULL, ex.what(),
+ StatusCode::RESPONDER, nullptr, ex.what(),
relayState.c_str(),
policy.getIssuerMetadata(),
application,
return sendResponse(
mgmtRequest->getID(),
worked ? StatusCode::SUCCESS : StatusCode::RESPONDER,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
relayState.c_str(),
policy.getIssuerMetadata(),
application,
) const
{
// Get endpoint and encoder to use.
- const EndpointType* ep = NULL;
- const MessageEncoder* encoder = NULL;
+ const EndpointType* ep = nullptr;
+ const MessageEncoder* encoder = nullptr;
if (front) {
const IDPSSODescriptor* idp = dynamic_cast<const IDPSSODescriptor*>(role);
for (vector<const XMLCh*>::const_iterator b = m_bindings.begin(); idp && b!=m_bindings.end(); ++b) {
};
SAML2SessionInitiator::SAML2SessionInitiator(const DOMElement* e, const char* appId)
- : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.SAML2"), NULL, &m_remapper), m_appId(appId),
+ : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.SAML2"), nullptr, &m_remapper), m_appId(appId),
m_paosNS(samlconstants::PAOS_NS), m_ecpNS(samlconstants::SAML20ECP_NS), m_paosBinding(samlconstants::SAML20_BINDING_PAOS)
{
static const XMLCh ECP[] = UNICODE_LITERAL_3(E,C,P);
- const XMLCh* flag = e ? e->getAttributeNS(NULL,ECP) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr,ECP) : nullptr;
#ifdef SHIBSP_LITE
m_ecp = (flag && (*flag == chLatin_t || *flag == chDigit_1));
#else
- m_outgoing=NULL;
- m_ecp = NULL;
- m_requestTemplate=NULL;
+ m_outgoing=nullptr;
+ m_ecp = nullptr;
+ m_requestTemplate=nullptr;
if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
// Check for a template AuthnRequest to build from.
if (flag && (*flag == chLatin_t || *flag == chDigit_1)) {
try {
m_ecp = SAMLConfig::getConfig().MessageEncoderManager.newPlugin(
- samlconstants::SAML20_BINDING_PAOS, pair<const DOMElement*,const XMLCh*>(e,NULL)
+ samlconstants::SAML20_BINDING_PAOS, pair<const DOMElement*,const XMLCh*>(e,nullptr)
);
}
catch (exception& ex) {
try {
auto_ptr_char b(start);
MessageEncoder * encoder = SAMLConfig::getConfig().MessageEncoderManager.newPlugin(
- b.get(),pair<const DOMElement*,const XMLCh*>(e,NULL)
+ b.get(),pair<const DOMElement*,const XMLCh*>(e,nullptr)
);
if (encoder->isUserAgentPresent()) {
m_encoders[start] = encoder;
string target;
pair<bool,const char*> prop;
- const Handler* ACS=NULL;
+ const Handler* ACS=nullptr;
pair<bool,const char*> acClass, acComp, nidFormat, spQual;
bool isPassive=false,forceAuthn=false;
const Application& app=request.getApplication();
request.log(SPRequest::SPWarn, "invalid acsIndex specified in request, using acsIndex property");
else if (ECP && !XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_PAOS)) {
request.log(SPRequest::SPWarn, "acsIndex in request referenced a non-PAOS ACS, using default ACS location");
- ACS = NULL;
+ ACS = nullptr;
}
}
// Validate the ACS for use with this protocol.
if (!ECP) {
- pair<bool,const char*> ACSbinding = ACS ? ACS->getString("Binding") : pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> ACSbinding = ACS ? ACS->getString("Binding") : pair<bool,const char*>(false,nullptr);
if (ACSbinding.first) {
pair<bool,const char*> compatibleBindings = getString("compatibleBindings");
- if (compatibleBindings.first && strstr(compatibleBindings.second, ACSbinding.second) == NULL) {
+ if (compatibleBindings.first && strstr(compatibleBindings.second, ACSbinding.second) == nullptr) {
m_log.error("configured or requested ACS has non-SAML 2.0 binding");
throw ConfigurationException("Configured or requested ACS has non-SAML 2.0 binding ($1).", params(1, ACSbinding.second));
}
}
// Determine index to use.
- pair<bool,const XMLCh*> ix = pair<bool,const XMLCh*>(false,NULL);
+ pair<bool,const XMLCh*> ix = pair<bool,const XMLCh*>(false,nullptr);
if (ACS) {
if (!strncmp(ACSloc.c_str(), "https", 5)) {
ix = ACS->getXMLString("sslIndex", shibspconstants::ASCII_SHIB2SPCONFIG_NS);
app, &request, request, entityID.c_str(),
ix.second,
ACS ? XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_HTTP_ARTIFACT) : false,
- NULL, NULL,
+ nullptr, nullptr,
isPassive, forceAuthn,
- acClass.first ? acClass.second : NULL,
- acComp.first ? acComp.second : NULL,
- nidFormat.first ? nidFormat.second : NULL,
- spQual.first ? spQual.second : NULL,
+ acClass.first ? acClass.second : nullptr,
+ acComp.first ? acComp.second : nullptr,
+ nidFormat.first ? nidFormat.second : nullptr,
+ spQual.first ? spQual.second : nullptr,
target
);
}
// Since we're not passing by index, we need to fully compute the return URL and binding.
// Compute the ACS URL. We add the ACS location to the base handlerURL.
- prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,NULL);
+ prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,nullptr);
if (prop.first)
ACSloc += prop.second;
return doRequest(
app, &request, request, entityID.c_str(),
- NULL,
+ nullptr,
ACS ? XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_HTTP_ARTIFACT) : false,
- ACSloc.c_str(), ACS ? ACS->getXMLString("Binding").second : NULL,
+ ACSloc.c_str(), ACS ? ACS->getXMLString("Binding").second : nullptr,
isPassive, forceAuthn,
- acClass.first ? acClass.second : NULL,
- acComp.first ? acComp.second : NULL,
- nidFormat.first ? nidFormat.second : NULL,
- spQual.first ? spQual.second : NULL,
+ acClass.first ? acClass.second : nullptr,
+ acComp.first ? acComp.second : nullptr,
+ nidFormat.first ? nidFormat.second : nullptr,
+ spQual.first ? spQual.second : nullptr,
target
);
}
if (acsByIndex.first && acsByIndex.second) {
if (ACS) {
// Determine index to use.
- pair<bool,const char*> ix = pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> ix = pair<bool,const char*>(false,nullptr);
if (!strncmp(ACSloc.c_str(), "https", 5)) {
ix = ACS->getString("sslIndex", shibspconstants::ASCII_SHIB2SPCONFIG_NS);
if (!ix.first)
else {
// Since we're not passing by index, we need to fully compute the return URL and binding.
// Compute the ACS URL. We add the ACS location to the base handlerURL.
- prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,NULL);
+ prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,nullptr);
if (prop.first)
ACSloc += prop.second;
in.addmember("acsLocation").string(ACSloc.c_str());
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) to generate AuthnRequest", aid ? aid : "(missing)");
throw ConfigurationException("Unable to locate application for new session, deleted?");
}
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
// Wrap the outgoing object with a Response facade.
// a false/0 return, which we just return as an empty structure, or a response/redirect,
// which we capture in the facade and send back.
doRequest(
- *app, NULL, *http.get(), in["entity_id"].string(),
+ *app, nullptr, *http.get(), in["entity_id"].string(),
index.get(),
(in["artifact"].integer() != 0),
in["acsLocation"].string(), bind.get(),
#ifndef SHIBSP_LITE
bool ECP = XMLString::equals(acsBinding, m_paosBinding.get());
- pair<const EntityDescriptor*,const RoleDescriptor*> entity = pair<const EntityDescriptor*,const RoleDescriptor*>(NULL,NULL);
- const IDPSSODescriptor* role = NULL;
- const EndpointType* ep = NULL;
- const MessageEncoder* encoder = NULL;
+ pair<const EntityDescriptor*,const RoleDescriptor*> entity = pair<const EntityDescriptor*,const RoleDescriptor*>(nullptr,nullptr);
+ const IDPSSODescriptor* role = nullptr;
+ const EndpointType* ep = nullptr;
+ const MessageEncoder* encoder = nullptr;
// We won't need this for ECP, but safety dictates we get the lock here.
MetadataProvider* m=app.getMetadataProvider();
auto_ptr<AuthnRequest> req(m_requestTemplate ? m_requestTemplate->cloneAuthnRequest() : AuthnRequestBuilder::buildAuthnRequest());
if (m_requestTemplate) {
// Freshen TS and ID.
- req->setID(NULL);
- req->setIssueInstant(time(NULL));
+ req->setID(nullptr);
+ req->setIssueInstant(time(nullptr));
}
if (ep)
}
if (reqContext->getAuthnContextClassRefs().empty() && reqContext->getAuthnContextDeclRefs().empty()) {
- req->setRequestedAuthnContext(NULL);
+ req->setRequestedAuthnContext(nullptr);
}
else if (authnContextComparison) {
auto_ptr_XMLCh widecomp(authnContextComparison);
lifetime.second = 28800;
if (!req->getConditions())
req->setConditions(ConditionsBuilder::buildConditions());
- req->getConditions()->setNotOnOrAfter(time(NULL) + lifetime.second + 300);
+ req->getConditions()->setNotOnOrAfter(time(nullptr) + lifetime.second + 300);
AudienceRestriction* audrest = AudienceRestrictionBuilder::buildAudienceRestriction();
req->getConditions()->getConditions().push_back(audrest);
Audience* aud = AudienceBuilder::buildAudience();
scoping->setIDPList(idplist);
}
VectorOf(IDPEntry) entries = idplist->getIDPEntrys();
- if (find_if(entries, bind2nd(_sameIdP(), wideid.get())) == NULL) {
+ if (find_if(entries, bind2nd(_sameIdP(), wideid.get())) == nullptr) {
IDPEntry* entry = IDPEntryBuilder::buildIDPEntry();
entry->setProviderID(wideid.get());
entries.push_back(entry);
}
}
- auto_ptr_char dest(ep ? ep->getLocation() : NULL);
+ auto_ptr_char dest(ep ? ep->getLocation() : nullptr);
if (httpRequest) {
// If the request object is available, we're responsible for the POST data.
{
public:
SAMLDSSessionInitiator(const DOMElement* e, const char* appId)
- : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.SAMLDS")), m_url(NULL), m_returnParam(NULL)
+ : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.SAMLDS")), m_url(nullptr), m_returnParam(nullptr)
#ifndef SHIBSP_LITE
,m_discoNS("urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol")
#endif
XMLString::equals((*i)->getElementQName().getNamespaceURI(), m_discoNS.get())) {
const AttributeExtensibleXMLObject* sub = dynamic_cast<const AttributeExtensibleXMLObject*>(*i);
if (sub) {
- const XMLCh* val = sub->getAttribute(xmltooling::QName(NULL,IndexedEndpointType::INDEX_ATTRIB_NAME));
+ const XMLCh* val = sub->getAttribute(xmltooling::QName(nullptr,IndexedEndpointType::INDEX_ATTRIB_NAME));
if (val) {
int maxindex = XMLString::parseInt(val);
if (ix.second <= maxindex)
auto_ptr_XMLCh widen2(os.str().c_str());
ElementProxy* ep = new AnyElementImpl(m_discoNS.get(), LOCAL_NAME);
- ep->setAttribute(xmltooling::QName(NULL,EndpointType::LOCATION_ATTRIB_NAME), widen.get());
- ep->setAttribute(xmltooling::QName(NULL,EndpointType::BINDING_ATTRIB_NAME), m_discoNS.get());
- ep->setAttribute(xmltooling::QName(NULL,IndexedEndpointType::INDEX_ATTRIB_NAME), widen2.get());
+ ep->setAttribute(xmltooling::QName(nullptr,EndpointType::LOCATION_ATTRIB_NAME), widen.get());
+ ep->setAttribute(xmltooling::QName(nullptr,EndpointType::BINDING_ATTRIB_NAME), m_discoNS.get());
+ ep->setAttribute(xmltooling::QName(nullptr,IndexedEndpointType::INDEX_ATTRIB_NAME), widen2.get());
Extensions* ext = role.getExtensions();
if (!ext) {
ext = ExtensionsBuilder::buildExtensions();
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
stringstream s;
s << "<html><head><title>Session Summary</title></head><body><pre>" << endl;
- Session* session = NULL;
+ Session* session = nullptr;
try {
session = request.getSession();
if (!session) {
s << "<strong>Authentication Context Decl:</strong> " << (session->getAuthnContextDeclRef() ? session->getAuthnContextDeclRef() : "(none)") << endl;
s << "<strong>Session Expiration (barring inactivity):</strong> ";
if (session->getExpiration())
- s << ((session->getExpiration() - time(NULL)) / 60) << " minute(s)" << endl;
+ s << ((session->getExpiration() - time(nullptr)) / 60) << " minute(s)" << endl;
else
s << "Infinite" << endl;
pair<bool,long> SessionInitiator::run(SPRequest& request, bool isHandler) const
{
- const char* entityID = NULL;
+ const char* entityID = nullptr;
pair<bool,const char*> param = getString("entityIDParam");
if (isHandler) {
entityID = request.getParameter(param.first ? param.second : "entityID");
{
public:
Shib1SessionInitiator(const DOMElement* e, const char* appId)
- : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.Shib1"), NULL, &m_remapper), m_appId(appId) {
+ : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.Shib1"), nullptr, &m_remapper), m_appId(appId) {
// If Location isn't set, defer address registration until the setParent call.
pair<bool,const char*> loc = getString("Location");
if (loc.first) {
string target;
pair<bool,const char*> prop;
- const Handler* ACS=NULL;
+ const Handler* ACS=nullptr;
const Application& app = request.getApplication();
if (isHandler) {
}
// Validate the ACS for use with this protocol.
- pair<bool,const char*> ACSbinding = ACS ? ACS->getString("Binding") : pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> ACSbinding = ACS ? ACS->getString("Binding") : pair<bool,const char*>(false,nullptr);
if (ACSbinding.first) {
pair<bool,const char*> compatibleBindings = getString("compatibleBindings");
- if (compatibleBindings.first && strstr(compatibleBindings.second, ACSbinding.second) == NULL) {
+ if (compatibleBindings.first && strstr(compatibleBindings.second, ACSbinding.second) == nullptr) {
m_log.error("configured or requested ACS has non-SAML 1.x binding");
throw ConfigurationException("Configured or requested ACS has non-SAML 1.x binding ($1).", params(1, ACSbinding.second));
}
// Compute the ACS URL. We add the ACS location to the base handlerURL.
string ACSloc = request.getHandlerURL(target.c_str());
- prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,NULL);
+ prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,nullptr);
if (prop.first)
ACSloc += prop.second;
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) to generate AuthnRequest", aid ? aid : "(missing)");
if (!entityID || !acsLocation)
throw ConfigurationException("No entityID or acsLocation parameter supplied to remoted SessionInitiator.");
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
// Wrap the outgoing object with a Response facade.
// Since we're remoted, the result should either be a throw, which we pass on,
// a false/0 return, which we just return as an empty structure, or a response/redirect,
// which we capture in the facade and send back.
- doRequest(*app, NULL, *http.get(), entityID, acsLocation, (in["artifact"].integer() != 0), relayState);
+ doRequest(*app, nullptr, *http.get(), entityID, acsLocation, (in["artifact"].integer() != 0), relayState);
if (!ret.isstruct())
ret.structure();
ret.addmember("RelayState").unsafe_string(relayState.c_str());
relayState = "default";
char timebuf[16];
- sprintf(timebuf,"%lu",time(NULL));
+ sprintf(timebuf,"%lu",time(nullptr));
const URLEncoder* urlenc = XMLToolingConfig::getConfig().getURLEncoder();
auto_ptr_char dest(ep->getLocation());
string req=string(dest.get()) + (strchr(dest.get(),'?') ? '&' : '?') + "shire=" + urlenc->encode(acsLocation) +
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
class DummyRequest : public HTTPRequest
{
public:
- DummyRequest(const char* url) : m_parser(NULL), m_url(url), m_scheme(NULL), m_query(NULL), m_port(0) {
+ DummyRequest(const char* url) : m_parser(nullptr), m_url(url), m_scheme(nullptr), m_query(nullptr), m_port(0) {
#ifdef HAVE_STRCASECMP
if (url && !strncasecmp(url,"http://",7)) {
m_scheme="http";
return "";
}
const char* getRequestBody() const {
- return NULL;
+ return nullptr;
}
const char* getQueryString() const {
return m_query;
m_parser=new CGIParser(*this);
pair<CGIParser::walker,CGIParser::walker> bounds=m_parser->getParameters(name);
- return (bounds.first==bounds.second) ? NULL : bounds.first->second;
+ return (bounds.first==bounds.second) ? nullptr : bounds.first->second;
}
vector<const char*>::size_type getParameters(const char* name, vector<const char*>& values) const
{
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) for status request", aid ? aid : "(missing)");
}
// Wrap a response shim.
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jout(ret);
auto_ptr<HTTPRequest> req(getRequest(in));
auto_ptr<HTTPResponse> resp(getResponse(ret));
<< "' OpenSAML-C='" << OPENSAML_FULLVERSIONDOT
<< "' Shibboleth='" << PACKAGE_VERSION << "'/>";
- const char* param = NULL;
+ const char* param = nullptr;
if (param) {
}
else {
status = "<Partial/>";
}
- const PropertySet* relyingParty=NULL;
+ const PropertySet* relyingParty=nullptr;
param=httpRequest.getParameter("entityID");
if (param) {
MetadataProvider* m = application.getMetadataProvider();
e = XMLHelper::getFirstChildElement(e);
while (e) {
if (e->hasChildNodes()) {
- const XMLCh* flag = e->getAttributeNS(NULL, force);
+ const XMLCh* flag = e->getAttributeNS(nullptr, force);
if (!flag)
flag = &chNull;
if (XMLString::equals(e->getLocalName(), Subst)) {
if (temp.get() && *temp.get())
m_subst.push_back(pair<bool,string>((*flag==chDigit_1 || *flag==chLatin_t), temp.get()));
}
- else if (XMLString::equals(e->getLocalName(), Regex) && e->hasAttributeNS(NULL, match)) {
- auto_ptr_char m(e->getAttributeNS(NULL, match));
+ else if (XMLString::equals(e->getLocalName(), Regex) && e->hasAttributeNS(nullptr, match)) {
+ auto_ptr_char m(e->getAttributeNS(nullptr, match));
auto_ptr_char repl(e->getFirstChild()->getNodeValue());
if (m.get() && *m.get() && repl.get() && *repl.get())
m_regex.push_back(make_pair((*flag==chDigit_1 || *flag==chLatin_t), pair<string,string>(m.get(), repl.get())));
{
// Find application.
const char* aid=in["application_id"].string();
- const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
+ const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : nullptr;
if (!app) {
// Something's horribly wrong.
m_log.error("couldn't find application (%s) to generate AuthnRequest", aid ? aid : "(missing)");
string copy(entityID);
doRequest(*app, copy);
- DDF ret = DDF(NULL).string(copy.c_str());
+ DDF ret = DDF(nullptr).string(copy.c_str());
DDFJanitor jout(ret);
out << ret;
}
{
public:
WAYFSessionInitiator(const DOMElement* e, const char* appId)
- : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.WAYF"), NULL, &m_remapper), m_url(NULL) {
+ : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT".SessionInitiator.WAYF"), nullptr, &m_remapper), m_url(nullptr) {
pair<bool,const char*> url = getString("URL");
if (!url.first)
throw ConfigurationException("WAYF SessionInitiator requires a URL property.");
string target;
pair<bool,const char*> prop;
- const Handler* ACS=NULL;
+ const Handler* ACS=nullptr;
const Application& app=request.getApplication();
pair<bool,const char*> discoveryURL = pair<bool,const char*>(true, m_url);
}
// Validate the ACS for use with this protocol.
- pair<bool,const char*> ACSbinding = ACS ? ACS->getString("Binding") : pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> ACSbinding = ACS ? ACS->getString("Binding") : pair<bool,const char*>(false,nullptr);
if (ACSbinding.first) {
pair<bool,const char*> compatibleBindings = getString("compatibleBindings");
- if (compatibleBindings.first && strstr(compatibleBindings.second, ACSbinding.second) == NULL) {
+ if (compatibleBindings.first && strstr(compatibleBindings.second, ACSbinding.second) == nullptr) {
m_log.error("configured or requested ACS has non-SAML 1.x binding");
throw ConfigurationException("Configured or requested ACS has non-SAML 1.x binding ($1).", params(1, ACSbinding.second));
}
// Compute the ACS URL. We add the ACS location to the base handlerURL.
string ACSloc = request.getHandlerURL(target.c_str());
- prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,NULL);
+ prop = ACS ? ACS->getString("Location") : pair<bool,const char*>(false,nullptr);
if (prop.first)
ACSloc += prop.second;
target = "default";
char timebuf[16];
- sprintf(timebuf,"%lu",time(NULL));
+ sprintf(timebuf,"%lu",time(nullptr));
const URLEncoder* urlenc = XMLToolingConfig::getConfig().getURLEncoder();
string req=string(discoveryURL.second) + (strchr(discoveryURL.second,'?') ? '&' : '?') + "shire=" + urlenc->encode(ACSloc.c_str()) +
"&time=" + timebuf + "&target=" + urlenc->encode(target.c_str()) +
/*
- * Copyright 2009 Internet2
+ * Copyright 2009-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
ChainingAccessControl::ChainingAccessControl(const DOMElement* e)
{
- const XMLCh* op = e ? e->getAttributeNS(NULL, _operator) : NULL;
+ const XMLCh* op = e ? e->getAttributeNS(nullptr, _operator) : nullptr;
if (XMLString::equals(op, AND))
m_op=OP_AND;
else if (XMLString::equals(op, OR))
throw ConfigurationException("Missing or unrecognized operator in Chaining AccessControl configuration.");
try {
- e = e ? XMLHelper::getFirstChildElement(e, _AccessControl) : NULL;
+ e = e ? XMLHelper::getFirstChildElement(e, _AccessControl) : nullptr;
while (e) {
- auto_ptr_char type(e->getAttributeNS(NULL, _type));
+ auto_ptr_char type(e->getAttributeNS(nullptr, _type));
if (type.get() && *type.get()) {
Category::getInstance(SHIBSP_LOGCAT".AccessControl.Chaining").info("building AccessControl provider of type (%s)...", type.get());
m_ac.push_back(SPConfig::getConfig().AccessControlManager.newPlugin(type.get(), e));
const HTTPRequest& httpRequest,
HTTPResponse& httpResponse,
time_t expires,
- const saml2md::EntityDescriptor* issuer=NULL,
- const XMLCh* protocol=NULL,
- const saml2::NameID* nameid=NULL,
- const XMLCh* authn_instant=NULL,
- const XMLCh* session_index=NULL,
- const XMLCh* authncontext_class=NULL,
- const XMLCh* authncontext_decl=NULL,
- const vector<const Assertion*>* tokens=NULL,
- const vector<Attribute*>* attributes=NULL
+ const saml2md::EntityDescriptor* issuer=nullptr,
+ const XMLCh* protocol=nullptr,
+ const saml2::NameID* nameid=nullptr,
+ const XMLCh* authn_instant=nullptr,
+ const XMLCh* session_index=nullptr,
+ const XMLCh* authncontext_class=nullptr,
+ const XMLCh* authncontext_decl=nullptr,
+ const vector<const Assertion*>* tokens=nullptr,
+ const vector<Attribute*>* attributes=nullptr
);
vector<string>::size_type logout(
const Application& application,
const set<string>* indexes
);
#endif
- Session* find(const Application& application, const char* key, const char* client_addr=NULL, time_t* timeout=NULL);
+ Session* find(const Application& application, const char* key, const char* client_addr=nullptr, time_t* timeout=nullptr);
void remove(const Application& application, const char* key);
void test();
return (session_id ? session_id : "");
}
- Session* find(const Application& application, const HTTPRequest& request, const char* client_addr=NULL, time_t* timeout=NULL) {
+ Session* find(const Application& application, const HTTPRequest& request, const char* client_addr=nullptr, time_t* timeout=nullptr) {
string id = active(application, request);
if (!id.empty())
return find(application, id.c_str(), client_addr, timeout);
- return NULL;
+ return nullptr;
}
- Session* find(const Application& application, HTTPRequest& request, const char* client_addr=NULL, time_t* timeout=NULL) {
+ Session* find(const Application& application, HTTPRequest& request, const char* client_addr=nullptr, time_t* timeout=nullptr) {
string id = active(application, request);
if (id.empty())
- return NULL;
+ return nullptr;
try {
Session* session = find(application, id.c_str(), client_addr, timeout);
if (session)
}
throw;
}
- return NULL;
+ return nullptr;
}
- void remove(const Application& application, const HTTPRequest& request, HTTPResponse* response=NULL) {
+ void remove(const Application& application, const HTTPRequest& request, HTTPResponse* response=nullptr) {
pair<string,const char*> shib_cookie = application.getCookieNameProps("_shibsession_");
const char* session_id = request.getCookie(shib_cookie.first.c_str());
if (session_id && *session_id) {
public:
StoredSession(SSCache* cache, DDF& obj) : m_obj(obj),
#ifndef SHIBSP_LITE
- m_nameid(NULL),
+ m_nameid(nullptr),
#endif
- m_cache(cache), m_expires(0), m_lastAccess(time(NULL)), m_lock(NULL) {
+ m_cache(cache), m_expires(0), m_lastAccess(time(nullptr)), m_lock(nullptr) {
auto_ptr_XMLCh exp(m_obj["expires"].string());
if (exp.get()) {
DateTime iso(exp.get());
void StoredSession::validate(const Application& application, const char* client_addr, time_t* timeout)
{
- time_t now = time(NULL);
+ time_t now = time(nullptr);
// Basic expiration?
if (m_expires > 0) {
else if (ver < 0) {
// Out of sync.
m_cache->m_log.warn("storage service indicates the record is out of sync, updating with a fresh copy...");
- ver = m_cache->m_storage->readText(getID(), "session", &record, NULL);
+ ver = m_cache->m_storage->readText(getID(), "session", &record, nullptr);
if (!ver) {
m_cache->m_log.error("readText failed on StorageService for session (%s)", getID());
throw IOException("Unable to read back stored session.");
return i->second;
string tokenstr;
- if (!m_cache->m_storage->readText(getID(), id, &tokenstr, NULL))
+ if (!m_cache->m_storage->readText(getID(), id, &tokenstr, nullptr))
throw FatalProfileException("Assertion not found in cache.");
// Parse and bind the document into an XMLObject.
m_cache->m_log.debug("adding assertion (%s) to session (%s)", id.get(), getID());
time_t exp;
- if (!m_cache->m_storage->readText(getID(), "session", NULL, &exp))
+ if (!m_cache->m_storage->readText(getID(), "session", nullptr, &exp))
throw IOException("Unable to load expiration time for stored session.");
ostringstream tokenstr;
int ver;
do {
- DDF token = DDF(NULL).string(id.get());
+ DDF token = DDF(nullptr).string(id.get());
m_obj["assertions"].add(token);
// Tentatively increment the version.
else if (ver < 0) {
// Out of sync.
m_cache->m_log.warn("storage service indicates the record is out of sync, updating with a fresh copy...");
- ver = m_cache->m_storage->readText(getID(), "session", &record, NULL);
+ ver = m_cache->m_storage->readText(getID(), "session", &record, nullptr);
if (!ver) {
m_cache->m_log.error("readText failed on StorageService for session (%s)", getID());
m_cache->m_storage->deleteText(getID(), id.get());
SSCache::SSCache(const DOMElement* e)
: m_log(Category::getInstance(SHIBSP_LOGCAT".SessionCache")), inproc(true), m_cacheTimeout(28800),
#ifndef SHIBSP_LITE
- m_storage(NULL), m_storage_lite(NULL), m_cacheAssertions(true),
+ m_storage(nullptr), m_storage_lite(nullptr), m_cacheAssertions(true),
#endif
- m_root(e), m_inprocTimeout(900), m_lock(NULL), shutdown(false), shutdown_wait(NULL), cleanup_thread(NULL)
+ m_root(e), m_inprocTimeout(900), m_lock(nullptr), shutdown(false), shutdown_wait(nullptr), cleanup_thread(nullptr)
{
static const XMLCh cacheAssertions[] = UNICODE_LITERAL_15(c,a,c,h,e,A,s,s,e,r,t,i,o,n,s);
static const XMLCh cacheTimeout[] = UNICODE_LITERAL_12(c,a,c,h,e,T,i,m,e,o,u,t);
inproc = conf.isEnabled(SPConfig::InProcess);
if (e) {
- const XMLCh* tag=e->getAttributeNS(NULL,cacheTimeout);
+ const XMLCh* tag=e->getAttributeNS(nullptr,cacheTimeout);
if (tag && *tag) {
m_cacheTimeout = XMLString::parseInt(tag);
if (!m_cacheTimeout)
m_cacheTimeout=28800;
}
if (inproc) {
- const XMLCh* tag=e->getAttributeNS(NULL,inprocTimeout);
+ const XMLCh* tag=e->getAttributeNS(nullptr,inprocTimeout);
if (tag && *tag) {
m_inprocTimeout = XMLString::parseInt(tag);
if (!m_inprocTimeout)
#ifndef SHIBSP_LITE
if (conf.isEnabled(SPConfig::OutOfProcess)) {
- const XMLCh* tag = e ? e->getAttributeNS(NULL,_StorageService) : NULL;
+ const XMLCh* tag = e ? e->getAttributeNS(nullptr,_StorageService) : nullptr;
if (tag && *tag) {
auto_ptr_char ssid(tag);
m_storage = conf.getServiceProvider()->getStorageService(ssid.get());
if (!m_storage)
throw ConfigurationException("SessionCache unable to locate StorageService, check configuration.");
- tag = e ? e->getAttributeNS(NULL,_StorageServiceLite) : NULL;
+ tag = e ? e->getAttributeNS(nullptr,_StorageServiceLite) : nullptr;
if (tag && *tag) {
auto_ptr_char ssid(tag);
m_storage_lite = conf.getServiceProvider()->getStorageService(ssid.get());
m_log.info("No StorageServiceLite specified. Using standard StorageService.");
m_storage_lite = m_storage;
}
- tag = e ? e->getAttributeNS(NULL, cacheAssertions) : NULL;
+ tag = e ? e->getAttributeNS(nullptr, cacheAssertions) : nullptr;
if (tag && (*tag == chLatin_f || *tag == chDigit_0))
m_cacheAssertions = false;
}
// Shut down the cleanup thread and let it know...
shutdown = true;
shutdown_wait->signal();
- cleanup_thread->join(NULL);
+ cleanup_thread->join(nullptr);
for_each(m_hashtable.begin(),m_hashtable.end(),cleanup_pair<string,StoredSession>());
delete m_lock;
void SSCache::test()
{
auto_ptr_char temp(SAMLConfig::getConfig().generateIdentifier());
- m_storage->createString("SessionCacheTest", temp.get(), "Test", time(NULL) + 60);
+ m_storage->createString("SessionCacheTest", temp.get(), "Test", time(nullptr) + 60);
m_storage->deleteString("SessionCacheTest", temp.get());
}
}
else {
// New record.
- obj = DDF(NULL).structure();
+ obj = DDF(nullptr).structure();
}
if (!index || !*index)
DDF sessions = obj.addmember(index);
if (!sessions.islist())
sessions.list();
- DDF session = DDF(NULL).string(key);
+ DDF session = DDF(nullptr).string(key);
sessions.add(session);
// Remarshall the record.
m_log.debug("creating new session");
- time_t now = time(NULL);
+ time_t now = time(nullptr);
auto_ptr_char index(session_index);
- auto_ptr_char entity_id(issuer ? issuer->getEntityID() : NULL);
- auto_ptr_char name(nameid ? nameid->getName() : NULL);
+ auto_ptr_char entity_id(issuer ? issuer->getEntityID() : nullptr);
+ auto_ptr_char name(nameid ? nameid->getName() : nullptr);
if (nameid) {
// Check for a pending logout.
// IdP.SP.index contains logout expiration, if any.
DDF deadmenwalking = pendobj[issuer ? entity_id.get() : "_shibnull"][application.getRelyingParty(issuer)->getString("entityID").second];
const char* logexpstr = deadmenwalking[session_index ? index.get() : "_shibnull"].string();
- if (!logexpstr && session_index) // we tried an exact session match, now try for NULL
+ if (!logexpstr && session_index) // we tried an exact session match, now try for nullptr
logexpstr = deadmenwalking["_shibnull"].string();
if (logexpstr) {
auto_ptr_XMLCh dt(logexpstr);
obj.addmember("assertions").list();
for (vector<const Assertion*>::const_iterator t = tokens->begin(); t!=tokens->end(); ++t) {
auto_ptr_char tokenid((*t)->getID());
- DDF tokid = DDF(NULL).string(tokenid.get());
+ DDF tokid = DDF(nullptr).string(tokenid.get());
obj["assertions"].add(tokid);
}
}
const set<string>* indexes
)
{
- auto_ptr_char entityID(issuer ? issuer->getEntityID() : NULL);
+ auto_ptr_char entityID(issuer ? issuer->getEntityID() : nullptr);
try {
Session* session = find(application, request);
if (session) {
if (!m_storage)
throw ConfigurationException("SessionCache insertion requires a StorageService.");
- auto_ptr_char entityID(issuer ? issuer->getEntityID() : NULL);
+ auto_ptr_char entityID(issuer ? issuer->getEntityID() : nullptr);
auto_ptr_char name(nameid.getName());
m_log.info("request to logout sessions from (%s) for (%s)", entityID.get() ? entityID.get() : "unknown", name.get());
lin >> obj;
}
else {
- obj = DDF(NULL).structure();
+ obj = DDF(nullptr).structure();
}
// Structure is keyed by the IdP and SP, with a member per session index containing the expiration.
key = sessions.first();
while (key.isstring()) {
// Fetch the session for comparison.
- Session* session = NULL;
+ Session* session = nullptr;
try {
session = find(application, key.string());
}
#ifdef _DEBUG
xmltooling::NDC ndc("find");
#endif
- StoredSession* session=NULL;
+ StoredSession* session=nullptr;
if (inproc) {
m_log.debug("searching local cache for session (%s)", key);
if (!out.isstruct()) {
out.destroy();
m_log.debug("session not found in remote cache");
- return NULL;
+ return nullptr;
}
// Wrap the results in a local entry and save it.
session = new StoredSession(this, out);
// The remote end has handled timeout issues, we handle address and expiration checks.
- timeout = NULL;
+ timeout = nullptr;
}
catch (...) {
out.destroy();
string record;
int ver = m_storage->readText(key, "session", &record, &lastAccess);
if (!ver)
- return NULL;
+ return nullptr;
m_log.debug("reconstituting session and checking validity");
in >> obj;
lastAccess -= m_cacheTimeout; // adjusts it back to the last time the record's timestamp was touched
- time_t now=time(NULL);
+ time_t now=time(nullptr);
if (timeout && *timeout > 0 && now - lastAccess >= *timeout) {
m_log.info("session timed out (ID: %s)", key);
// Wrap the results in a local entry and save it.
session = new StoredSession(this, obj);
// We handled timeout issues, still need to handle address and expiration checks.
- timeout = NULL;
+ timeout = nullptr;
#else
throw ConfigurationException("SessionCache search requires a StorageService.");
#endif
if (!XMLString::equals(session->getApplicationID(), application.getId())) {
m_log.error("an application (%s) tried to access another application's session", application.getId());
session->unlock();
- return NULL;
+ return nullptr;
}
// Verify currency and update the timestamp if indicated by caller.
// Load our configuration details...
static const XMLCh cleanupInterval[] = UNICODE_LITERAL_15(c,l,e,a,n,u,p,I,n,t,e,r,v,a,l);
- const XMLCh* tag=m_root ? m_root->getAttributeNS(NULL,cleanupInterval) : NULL;
+ const XMLCh* tag=m_root ? m_root->getAttributeNS(nullptr,cleanupInterval) : nullptr;
int rerun_timer = 900;
if (tag && *tag) {
rerun_timer = XMLString::parseInt(tag);
// Pass 1: iterate over the map and find all entries that have not been
// used in the allotted timeout.
vector<string> stale_keys;
- time_t stale = time(NULL) - m_inprocTimeout;
+ time_t stale = time(nullptr) - m_inprocTimeout;
m_log.debug("cleanup thread running");
mutex->unlock();
delete mutex;
- Thread::exit(NULL);
+ Thread::exit(nullptr);
}
void* SSCache::cleanup_fn(void* cache_p)
// Now run the cleanup process.
reinterpret_cast<SSCache*>(cache_p)->cleanup();
- return NULL;
+ return nullptr;
}
#ifndef SHIBSP_LITE
string record;
time_t lastAccess;
if (!m_storage->readText(key, "session", &record, &lastAccess)) {
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jan(ret);
out << ret;
return;
// Adjust for expiration to recover last access time and check timeout.
lastAccess -= m_cacheTimeout;
- time_t now=time(NULL);
+ time_t now=time(nullptr);
// See if we need to check for a timeout.
if (in["timeout"].string()) {
// Adjust for expiration to recover last access time and check timeout.
lastAccess -= m_cacheTimeout;
- time_t now=time(NULL);
+ time_t now=time(nullptr);
// See if we need to check for a timeout.
time_t timeout = 0;
out << record;
}
else {
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jan(ret);
out << ret;
}
throw ConfigurationException("Application not found, check configuration?");
remove(*app, key);
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jan(ret);
out << ret;
}
/**
* XMLAccessControl.cpp
*
- * XML-based access control syntax
+ * XML-based access control syntax.
*/
#include "internal.h"
{
public:
XMLAccessControl(const DOMElement* e)
- : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AccessControl.XML")), m_rootAuthz(NULL) {
+ : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AccessControl.XML")), m_rootAuthz(nullptr) {
background_load(); // guarantees an exception or the policy is loaded
}
Rule::Rule(const DOMElement* e)
{
- auto_ptr_char req(e->getAttributeNS(NULL,require));
+ auto_ptr_char req(e->getAttributeNS(nullptr,require));
if (!req.get() || !*req.get())
throw ConfigurationException("Access control rule missing require attribute");
m_alias=req.get();
- auto_arrayptr<char> vals(toUTF8(e->hasChildNodes() ? e->getFirstChild()->getNodeValue() : NULL));
+ auto_arrayptr<char> vals(toUTF8(e->hasChildNodes() ? e->getFirstChild()->getNodeValue() : nullptr));
if (!vals.get())
return;
- const XMLCh* flag = e->getAttributeNS(NULL,_list);
+ const XMLCh* flag = e->getAttributeNS(nullptr,_list);
if (flag && (*flag == chLatin_f || *flag == chDigit_0)) {
if (*vals.get())
m_vals.push_back(vals.get());
}
#ifdef HAVE_STRTOK_R
- char* pos=NULL;
+ char* pos=nullptr;
const char* token=strtok_r(const_cast<char*>(vals.get())," ",&pos);
#else
const char* token=strtok(const_cast<char*>(vals.get())," ");
while (token) {
m_vals.push_back(token);
#ifdef HAVE_STRTOK_R
- token=strtok_r(NULL," ",&pos);
+ token=strtok_r(nullptr," ",&pos);
#else
- token=strtok(NULL," ");
+ token=strtok(nullptr," ");
#endif
}
}
return shib_acl_false;
}
-RuleRegex::RuleRegex(const DOMElement* e) : m_exp(toUTF8(e->hasChildNodes() ? e->getFirstChild()->getNodeValue() : NULL))
+RuleRegex::RuleRegex(const DOMElement* e) : m_exp(toUTF8(e->hasChildNodes() ? e->getFirstChild()->getNodeValue() : nullptr))
{
- auto_ptr_char req(e->getAttributeNS(NULL,require));
+ auto_ptr_char req(e->getAttributeNS(nullptr,require));
if (!req.get() || !*req.get() || !m_exp.get() || !*m_exp.get())
throw ConfigurationException("Access control rule missing require attribute or element content.");
m_alias=req.get();
- const XMLCh* flag = e->getAttributeNS(NULL,ignoreCase);
+ const XMLCh* flag = e->getAttributeNS(nullptr,ignoreCase);
bool ignore = (flag && (*flag == chLatin_t || *flag == chDigit_1));
try {
m_re = new RegularExpression(e->getFirstChild()->getNodeValue(), (ignore ? ignoreOption : &chNull));
pair<bool,DOMElement*> raw = ReloadableXMLFile::load();
// If we own it, wrap it.
- XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : NULL);
+ XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : nullptr);
// Check for AccessControl wrapper and drop a level.
if (XMLString::equals(raw.second->getLocalName(),_AccessControl))
delete m_rootAuthz;
m_rootAuthz = authz;
- return make_pair(false,(DOMElement*)NULL);
+ return make_pair(false,(DOMElement*)nullptr);
}
AccessControl::aclresult_t XMLAccessControl::authorized(const SPRequest& request, const Session* session) const
class Override : public DOMPropertySet, public DOMNodeFilter
{
public:
- Override() : m_acl(NULL) {}
- Override(const DOMElement* e, Category& log, const Override* base=NULL);
+ Override() : m_acl(nullptr) {}
+ Override(const DOMElement* e, Category& log, const Override* base=nullptr);
~Override();
// Provides filter to exclude special config elements.
}
const Override* locate(const HTTPRequest& request) const;
- AccessControl* getAC() const { return (m_acl ? m_acl : (getParent() ? dynamic_cast<const Override*>(getParent())->getAC() : NULL)); }
+ AccessControl* getAC() const { return (m_acl ? m_acl : (getParent() ? dynamic_cast<const Override*>(getParent())->getAC() : nullptr)); }
protected:
void loadACL(const DOMElement* e, Category& log);
class XMLRequestMapper : public RequestMapper, public ReloadableXMLFile
{
public:
- XMLRequestMapper(const DOMElement* e) : ReloadableXMLFile(e,Category::getInstance(SHIBSP_LOGCAT".RequestMapper")), m_impl(NULL) {
+ XMLRequestMapper(const DOMElement* e) : ReloadableXMLFile(e,Category::getInstance(SHIBSP_LOGCAT".RequestMapper")), m_impl(nullptr) {
background_load();
}
else {
acl=XMLHelper::getFirstChildElement(e,AccessControlProvider);
if (acl) {
- auto_ptr_char type(acl->getAttributeNS(NULL,_type));
+ auto_ptr_char type(acl->getAttributeNS(nullptr,_type));
log.info("building AccessControl provider of type %s...",type.get());
m_acl=SPConfig::getConfig().AccessControlManager.newPlugin(type.get(),acl);
}
}
}
-Override::Override(const DOMElement* e, Category& log, const Override* base) : m_acl(NULL)
+Override::Override(const DOMElement* e, Category& log, const Override* base) : m_acl(nullptr)
{
try {
// Load the property set.
- load(e,NULL,this);
+ load(e,nullptr,this);
setParent(base);
// Load any AccessControl provider.
// Handle nested Paths.
DOMElement* path = XMLHelper::getFirstChildElement(e,Path);
for (int i=1; path; ++i, path=XMLHelper::getNextSiblingElement(path,Path)) {
- const XMLCh* n=path->getAttributeNS(NULL,name);
+ const XMLCh* n=path->getAttributeNS(nullptr,name);
// Skip any leading slashes.
while (n && *n==chForwardSlash)
if (*n) {
// Create a placeholder Path element for the first path segment and replant under it.
DOMElement* newpath=path->getOwnerDocument()->createElementNS(shibspconstants::SHIB2SPCONFIG_NS,Path);
- newpath->setAttributeNS(NULL,name,namebuf);
- path->setAttributeNS(NULL,name,n);
+ newpath->setAttributeNS(nullptr,name,namebuf);
+ path->setAttributeNS(nullptr,name,n);
path->getParentNode()->replaceChild(newpath,path);
newpath->appendChild(path);
// Repoint our locals at the new parent.
path=newpath;
- n=path->getAttributeNS(NULL,name);
+ n=path->getAttributeNS(nullptr,name);
}
else {
// All we had was a pathname with trailing slash(es), so just reset it without them.
- path->setAttributeNS(NULL,name,namebuf);
- n=path->getAttributeNS(NULL,name);
+ path->setAttributeNS(nullptr,name,namebuf);
+ n=path->getAttributeNS(nullptr,name);
}
delete[] namebuf;
}
// Handle nested PathRegexs.
path = XMLHelper::getFirstChildElement(e,PathRegex);
for (int i=1; path; ++i, path=XMLHelper::getNextSiblingElement(path,PathRegex)) {
- const XMLCh* n=path->getAttributeNS(NULL,regex);
+ const XMLCh* n=path->getAttributeNS(nullptr,regex);
if (!n || !*n) {
log.warn("skipping PathRegex element (%d) with empty regex attribute",i);
continue;
auto_ptr<Override> o(new Override(path,log,this));
- const XMLCh* flag=path->getAttributeNS(NULL,ignoreCase);
+ const XMLCh* flag=path->getAttributeNS(nullptr,ignoreCase);
try {
auto_ptr<RegularExpression> re(
new RegularExpression(n, (flag && (*flag==chLatin_f || *flag==chDigit_0)) ? &chNull : ignoreOption)
// Handle nested Querys.
path = XMLHelper::getFirstChildElement(e,Query);
for (int i=1; path; ++i, path=XMLHelper::getNextSiblingElement(path,Query)) {
- const XMLCh* n=path->getAttributeNS(NULL,name);
+ const XMLCh* n=path->getAttributeNS(nullptr,name);
if (!n || !*n) {
log.warn("skipping Query element (%d) with empty name attribute",i);
continue;
}
auto_ptr_char ntemp(n);
- const XMLCh* v=path->getAttributeNS(NULL,regex);
+ const XMLCh* v=path->getAttributeNS(nullptr,regex);
auto_ptr<Override> o(new Override(path,log,this));
try {
- RegularExpression* re = NULL;
+ RegularExpression* re = nullptr;
if (v && *v)
re = new RegularExpression(v);
m_queries.push_back(make_pair(make_pair(string(ntemp.get()),re), o.release()));
// Tokenize the path by segment and try and map each segment.
#ifdef HAVE_STRTOK_R
- char* pos=NULL;
+ char* pos=nullptr;
const char* token=strtok_r(dup,"/",&pos);
#else
const char* token=strtok(dup,"/");
// Get the next segment, if any.
#ifdef HAVE_STRTOK_R
- token=strtok_r(NULL,"/",&pos);
+ token=strtok_r(nullptr,"/",&pos);
#else
- token=strtok(NULL,"/");
+ token=strtok(nullptr,"/");
#endif
}
return o;
}
-XMLRequestMapperImpl::XMLRequestMapperImpl(const DOMElement* e, Category& log) : m_document(NULL)
+XMLRequestMapperImpl::XMLRequestMapperImpl(const DOMElement* e, Category& log) : m_document(nullptr)
{
#ifdef _DEBUG
xmltooling::NDC ndc("XMLRequestMapperImpl");
#endif
// Load the property set.
- load(e,NULL,this);
+ load(e,nullptr,this);
// Load any AccessControl provider.
loadACL(e,log);
// Loop over the HostRegex elements.
const DOMElement* host = XMLHelper::getFirstChildElement(e,HostRegex);
for (int i=1; host; ++i, host=XMLHelper::getNextSiblingElement(host,HostRegex)) {
- const XMLCh* n=host->getAttributeNS(NULL,regex);
+ const XMLCh* n=host->getAttributeNS(nullptr,regex);
if (!n || !*n) {
log.warn("Skipping HostRegex element (%d) with empty regex attribute",i);
continue;
auto_ptr<Override> o(new Override(host,log,this));
- const XMLCh* flag=host->getAttributeNS(NULL,ignoreCase);
+ const XMLCh* flag=host->getAttributeNS(nullptr,ignoreCase);
try {
auto_ptr<RegularExpression> re(
new RegularExpression(n, (flag && (*flag==chLatin_f || *flag==chDigit_0)) ? &chNull : ignoreOption)
// Loop over the Host elements.
host = XMLHelper::getFirstChildElement(e,Host);
for (int i=1; host; ++i, host=XMLHelper::getNextSiblingElement(host,Host)) {
- const XMLCh* n=host->getAttributeNS(NULL,name);
+ const XMLCh* n=host->getAttributeNS(nullptr,name);
if (!n || !*n) {
log.warn("Skipping Host element (%d) with empty name attribute",i);
continue;
const Override* XMLRequestMapperImpl::findOverride(const char* vhost, const HTTPRequest& request) const
{
- const Override* o=NULL;
+ const Override* o=nullptr;
map<string,Override*>::const_iterator i=m_map.find(vhost);
if (i!=m_map.end())
o=i->second;
pair<bool,DOMElement*> raw = ReloadableXMLFile::load();
// If we own it, wrap it.
- XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : NULL);
+ XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : nullptr);
XMLRequestMapperImpl* impl = new XMLRequestMapperImpl(raw.second, m_log);
delete m_impl;
m_impl = impl;
- return make_pair(false,(DOMElement*)NULL);
+ return make_pair(false,(DOMElement*)nullptr);
}
RequestMapper::Settings XMLRequestMapper::getSettings(const HTTPRequest& request) const
class SHIBSP_DLLLOCAL XMLApplication : public Application, public Remoted, public DOMPropertySet, public DOMNodeFilter
{
public:
- XMLApplication(const ServiceProvider*, const DOMElement* e, const XMLApplication* base=NULL);
+ XMLApplication(const ServiceProvider*, const DOMElement* e, const XMLApplication* base=nullptr);
~XMLApplication() { cleanup(); }
const char* getHash() const {return m_hash.c_str();}
void receive(DDF& in, ostream& out) {
// Only current function is to return the headers to clear.
DDF header;
- DDF ret=DDF(NULL).list();
+ DDF ret=DDF(nullptr).list();
DDFJanitor jret(ret);
for (vector< pair<string,string> >::const_iterator i = m_unsetHeaders.begin(); i!=m_unsetHeaders.end(); ++i) {
header = DDF(i->first.c_str()).string(i->second.c_str());
{
public:
XMLConfig(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".Config")),
- m_impl(NULL), m_listener(NULL), m_sessionCache(NULL)
+ m_impl(nullptr), m_listener(nullptr), m_sessionCache(nullptr)
#ifndef SHIBSP_LITE
- , m_tranLog(NULL)
+ , m_tranLog(nullptr)
#endif
{
}
delete m_listener;
#ifndef SHIBSP_LITE
delete m_tranLog;
- SAMLConfig::getConfig().setArtifactMap(NULL);
- XMLToolingConfig::getConfig().setReplayCache(NULL);
+ SAMLConfig::getConfig().setArtifactMap(nullptr);
+ XMLToolingConfig::getConfig().setReplayCache(nullptr);
for_each(m_storage.begin(), m_storage.end(), cleanup_pair<string,StorageService>());
#endif
}
// PropertySet
const PropertySet* getParent() const { return m_impl->getParent(); }
void setParent(const PropertySet* parent) {return m_impl->setParent(parent);}
- pair<bool,bool> getBool(const char* name, const char* ns=NULL) const {return m_impl->getBool(name,ns);}
- pair<bool,const char*> getString(const char* name, const char* ns=NULL) const {return m_impl->getString(name,ns);}
- pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=NULL) const {return m_impl->getXMLString(name,ns);}
- pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=NULL) const {return m_impl->getUnsignedInt(name,ns);}
- pair<bool,int> getInt(const char* name, const char* ns=NULL) const {return m_impl->getInt(name,ns);}
+ pair<bool,bool> getBool(const char* name, const char* ns=nullptr) const {return m_impl->getBool(name,ns);}
+ pair<bool,const char*> getString(const char* name, const char* ns=nullptr) const {return m_impl->getString(name,ns);}
+ pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=nullptr) const {return m_impl->getXMLString(name,ns);}
+ pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=nullptr) const {return m_impl->getUnsignedInt(name,ns);}
+ pair<bool,int> getInt(const char* name, const char* ns=nullptr) const {return m_impl->getInt(name,ns);}
void getAll(map<string,const char*>& properties) const {return m_impl->getAll(properties);}
const PropertySet* getPropertySet(const char* name, const char* ns="urn:mace:shibboleth:2.0:native:sp:config") const {return m_impl->getPropertySet(name,ns);}
const DOMElement* getElement() const {return m_impl->getElement();}
if (i!=m_storage.end())
return i->second;
}
- return NULL;
+ return nullptr;
}
#endif
const Application* getApplication(const char* applicationId) const {
map<string,Application*>::const_iterator i=m_impl->m_appmap.find(applicationId);
- return (i!=m_impl->m_appmap.end()) ? i->second : NULL;
+ return (i!=m_impl->m_appmap.end()) ? i->second : nullptr;
}
#ifndef SHIBSP_LITE
const XMLApplication* base
) : Application(sp), m_base(base),
#ifndef SHIBSP_LITE
- m_metadata(NULL), m_trust(NULL),
- m_attrExtractor(NULL), m_attrFilter(NULL), m_attrResolver(NULL),
- m_credResolver(NULL),
+ m_metadata(nullptr), m_trust(nullptr),
+ m_attrExtractor(nullptr), m_attrFilter(nullptr), m_attrResolver(nullptr),
+ m_credResolver(nullptr),
#endif
- m_acsDefault(NULL), m_sessionInitDefault(NULL), m_artifactResolutionDefault(NULL)
+ m_acsDefault(nullptr), m_sessionInitDefault(nullptr), m_artifactResolutionDefault(nullptr)
{
#ifdef _DEBUG
xmltooling::NDC ndc("XMLApplication");
try {
// First load any property sets.
- load(e,NULL,this);
+ load(e,nullptr,this);
if (base)
setParent(base);
if (pos)
*pos=0;
m_remoteUsers.push_back(start);
- start = pos ? pos+1 : NULL;
+ start = pos ? pos+1 : nullptr;
}
free(dup);
}
m_unsetHeaders.push_back(pair<string,string>(m_attributePrefix.first + start, m_attributePrefix.second + transformed));
if (prefix.first)
m_unsetHeaders.push_back(pair<string,string>(m_attributePrefix.first + prefix.second + start, transformedprefix + transformed));
- start = pos ? pos+1 : NULL;
+ start = pos ? pos+1 : nullptr;
}
free(dup);
m_unsetHeaders.push_back(pair<string,string>(m_attributePrefix.first + "Shib-Application-ID", m_attributePrefix.second + "SHIB_APPLICATION_ID"));
}
}
- Handler* handler=NULL;
+ Handler* handler=nullptr;
const PropertySet* sessions = getPropertySet("Sessions");
// Process assertion export handler.
- pair<bool,const char*> location = sessions ? sessions->getString("exportLocation") : pair<bool,const char*>(false,NULL);
+ pair<bool,const char*> location = sessions ? sessions->getString("exportLocation") : pair<bool,const char*>(false,nullptr);
if (location.first) {
try {
DOMElement* exportElement = e->getOwnerDocument()->createElementNS(shibspconstants::SHIB2SPCONFIG_NS,_Handler);
- exportElement->setAttributeNS(NULL,Location,sessions->getXMLString("exportLocation").second);
+ exportElement->setAttributeNS(nullptr,Location,sessions->getXMLString("exportLocation").second);
pair<bool,const XMLCh*> exportACL = sessions->getXMLString("exportACL");
if (exportACL.first) {
static const XMLCh _acl[] = UNICODE_LITERAL_9(e,x,p,o,r,t,A,C,L);
- exportElement->setAttributeNS(NULL,_acl,exportACL.second);
+ exportElement->setAttributeNS(nullptr,_acl,exportACL.second);
}
handler = conf.HandlerManager.newPlugin(
samlconstants::SAML20_BINDING_URI, pair<const DOMElement*,const char*>(exportElement, getId())
// Process other handlers.
bool hardACS=false, hardSessionInit=false, hardArt=false;
- const DOMElement* child = sessions ? XMLHelper::getFirstChildElement(sessions->getElement()) : NULL;
+ const DOMElement* child = sessions ? XMLHelper::getFirstChildElement(sessions->getElement()) : nullptr;
while (child) {
try {
// A handler is based on the Binding property in conjunction with the element name.
// If it's an ACS or SI, also handle index/id mappings and defaulting.
if (XMLString::equals(child->getLocalName(),_AssertionConsumerService)) {
- auto_ptr_char bindprop(child->getAttributeNS(NULL,Binding));
+ auto_ptr_char bindprop(child->getAttributeNS(nullptr,Binding));
if (!bindprop.get() || !*(bindprop.get())) {
log.warn("md:AssertionConsumerService element has no Binding attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
}
}
else if (XMLString::equals(child->getLocalName(),_SessionInitiator)) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
if (!type.get() || !*(type.get())) {
log.warn("SessionInitiator element has no type attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
}
}
else if (XMLString::equals(child->getLocalName(),_LogoutInitiator)) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
if (!type.get() || !*(type.get())) {
log.warn("LogoutInitiator element has no type attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
handler=conf.LogoutInitiatorManager.newPlugin(type.get(),make_pair(child, getId()));
}
else if (XMLString::equals(child->getLocalName(),_ArtifactResolutionService)) {
- auto_ptr_char bindprop(child->getAttributeNS(NULL,Binding));
+ auto_ptr_char bindprop(child->getAttributeNS(nullptr,Binding));
if (!bindprop.get() || !*(bindprop.get())) {
log.warn("md:ArtifactResolutionService element has no Binding attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
}
}
else if (XMLString::equals(child->getLocalName(),_SingleLogoutService)) {
- auto_ptr_char bindprop(child->getAttributeNS(NULL,Binding));
+ auto_ptr_char bindprop(child->getAttributeNS(nullptr,Binding));
if (!bindprop.get() || !*(bindprop.get())) {
log.warn("md:SingleLogoutService element has no Binding attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
handler=conf.SingleLogoutServiceManager.newPlugin(bindprop.get(),make_pair(child, getId()));
}
else if (XMLString::equals(child->getLocalName(),_ManageNameIDService)) {
- auto_ptr_char bindprop(child->getAttributeNS(NULL,Binding));
+ auto_ptr_char bindprop(child->getAttributeNS(nullptr,Binding));
if (!bindprop.get() || !*(bindprop.get())) {
log.warn("md:ManageNameIDService element has no Binding attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
handler=conf.ManageNameIDServiceManager.newPlugin(bindprop.get(),make_pair(child, getId()));
}
else {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
if (!type.get() || !*(type.get())) {
log.warn("Handler element has no type attribute, skipping it...");
child = XMLHelper::getNextSiblingElement(child);
DOMNodeList* nlist=e->getElementsByTagNameNS(shibspconstants::SHIB2SPCONFIG_NS,Notify);
for (XMLSize_t i=0; nlist && i<nlist->getLength(); i++) {
if (nlist->item(i)->getParentNode()->isSameNode(e)) {
- const XMLCh* channel = static_cast<DOMElement*>(nlist->item(i))->getAttributeNS(NULL,Channel);
- auto_ptr_char loc(static_cast<DOMElement*>(nlist->item(i))->getAttributeNS(NULL,Location));
+ const XMLCh* channel = static_cast<DOMElement*>(nlist->item(i))->getAttributeNS(nullptr,Channel);
+ auto_ptr_char loc(static_cast<DOMElement*>(nlist->item(i))->getAttributeNS(nullptr,Location));
if (loc.get() && *loc.get()) {
if (channel && *channel == chLatin_f)
m_frontLogout.push_back(loc.get());
if (conf.isEnabled(SPConfig::Metadata)) {
child = XMLHelper::getFirstChildElement(e,_MetadataProvider);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building MetadataProvider of type %s...",type.get());
try {
auto_ptr<MetadataProvider> mp(samlConf.MetadataProviderManager.newPlugin(type.get(),child));
if (conf.isEnabled(SPConfig::Trust)) {
child = XMLHelper::getFirstChildElement(e,_TrustEngine);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building TrustEngine of type %s...",type.get());
try {
m_trust = xmlConf.TrustEngineManager.newPlugin(type.get(),child);
if (conf.isEnabled(SPConfig::AttributeResolution)) {
child = XMLHelper::getFirstChildElement(e,_AttributeExtractor);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building AttributeExtractor of type %s...",type.get());
try {
m_attrExtractor = conf.AttributeExtractorManager.newPlugin(type.get(),child);
child = XMLHelper::getFirstChildElement(e,_AttributeFilter);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building AttributeFilter of type %s...",type.get());
try {
m_attrFilter = conf.AttributeFilterManager.newPlugin(type.get(),child);
child = XMLHelper::getFirstChildElement(e,_AttributeResolver);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building AttributeResolver of type %s...",type.get());
try {
m_attrResolver = conf.AttributeResolverManager.newPlugin(type.get(),child);
if (conf.isEnabled(SPConfig::Credentials)) {
child = XMLHelper::getFirstChildElement(e,_CredentialResolver);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building CredentialResolver of type %s...",type.get());
try {
m_credResolver = xmlConf.CredentialResolverManager.newPlugin(type.get(),child);
child = XMLHelper::getFirstChildElement(e,RelyingParty);
while (child) {
auto_ptr<DOMPropertySet> rp(new DOMPropertySet());
- rp->load(child,NULL,this);
+ rp->load(child,nullptr,this);
rp->setParent(this);
- m_partyMap[child->getAttributeNS(NULL,saml2::Attribute::NAME_ATTRIB_NAME)]=rp.release();
+ m_partyMap[child->getAttributeNS(nullptr,saml2::Attribute::NAME_ATTRIB_NAME)]=rp.release();
child = XMLHelper::getNextSiblingElement(child,RelyingParty);
}
#endif
for_each(m_partyMap.begin(),m_partyMap.end(),cleanup_pair<xstring,PropertySet>());
m_partyMap.clear();
delete m_credResolver;
- m_credResolver = NULL;
+ m_credResolver = nullptr;
delete m_attrResolver;
- m_attrResolver = NULL;
+ m_attrResolver = nullptr;
delete m_attrFilter;
- m_attrFilter = NULL;
+ m_attrFilter = nullptr;
delete m_attrExtractor;
- m_attrExtractor = NULL;
+ m_attrExtractor = nullptr;
delete m_trust;
- m_trust = NULL;
+ m_trust = nullptr;
delete m_metadata;
- m_metadata = NULL;
+ m_metadata = nullptr;
#endif
}
// 2 handler resource handler
// 3 resource resource handler
- const char* path = NULL;
+ const char* path = nullptr;
// Decide whether to use the handler or the resource for the "protocol"
const char* prot;
const SessionInitiator* XMLApplication::getDefaultSessionInitiator() const
{
if (m_sessionInitDefault) return m_sessionInitDefault;
- return m_base ? m_base->getDefaultSessionInitiator() : NULL;
+ return m_base ? m_base->getDefaultSessionInitiator() : nullptr;
}
const SessionInitiator* XMLApplication::getSessionInitiatorById(const char* id) const
{
map<string,const SessionInitiator*>::const_iterator i=m_sessionInitMap.find(id);
if (i!=m_sessionInitMap.end()) return i->second;
- return m_base ? m_base->getSessionInitiatorById(id) : NULL;
+ return m_base ? m_base->getSessionInitiatorById(id) : nullptr;
}
const Handler* XMLApplication::getDefaultAssertionConsumerService() const
{
if (m_acsDefault) return m_acsDefault;
- return m_base ? m_base->getDefaultAssertionConsumerService() : NULL;
+ return m_base ? m_base->getDefaultAssertionConsumerService() : nullptr;
}
const Handler* XMLApplication::getAssertionConsumerServiceByIndex(unsigned short index) const
{
map<unsigned int,const Handler*>::const_iterator i=m_acsIndexMap.find(index);
if (i!=m_acsIndexMap.end()) return i->second;
- return m_base ? m_base->getAssertionConsumerServiceByIndex(index) : NULL;
+ return m_base ? m_base->getAssertionConsumerServiceByIndex(index) : nullptr;
}
const vector<const Handler*>& XMLApplication::getAssertionConsumerServicesByBinding(const XMLCh* binding) const
map<string,const Handler*>::const_iterator i=m_handlerMap.find(wrap.substr(0,wrap.find('?')));
if (i!=m_handlerMap.end())
return i->second;
- return m_base ? m_base->getHandler(path) : NULL;
+ return m_base ? m_base->getHandler(path) : nullptr;
}
void XMLApplication::getHandlers(vector<const Handler*>& handlers) const
if (exts) {
exts=XMLHelper::getFirstChildElement(exts,Library);
while (exts) {
- auto_ptr_char path(exts->getAttributeNS(NULL,_path));
+ auto_ptr_char path(exts->getAttributeNS(nullptr,_path));
try {
if (path.get()) {
if (!XMLToolingConfig::getConfig().load_library(path.get(),(void*)exts))
}
}
catch (exception& e) {
- const XMLCh* fatal=exts->getAttributeNS(NULL,_fatal);
+ const XMLCh* fatal=exts->getAttributeNS(nullptr,_fatal);
if (fatal && (*fatal==chLatin_t || *fatal==chDigit_1)) {
log.fatal("unable to load mandatory %s extension library %s: %s", label, path.get(), e.what());
throw;
}
XMLConfigImpl::XMLConfigImpl(const DOMElement* e, bool first, const XMLConfig* outer, Category& log)
- : m_requestMapper(NULL), m_outer(outer), m_document(NULL)
+ : m_requestMapper(nullptr), m_outer(outer), m_document(nullptr)
{
#ifdef _DEBUG
xmltooling::NDC ndc("XMLConfigImpl");
// Initialize log4cpp manually in order to redirect log messages as soon as possible.
if (conf.isEnabled(SPConfig::Logging)) {
- const XMLCh* logconf=NULL;
+ const XMLCh* logconf=nullptr;
if (conf.isEnabled(SPConfig::OutOfProcess))
- logconf=SHAR->getAttributeNS(NULL,logger);
+ logconf=SHAR->getAttributeNS(nullptr,logger);
else if (conf.isEnabled(SPConfig::InProcess))
- logconf=SHIRE->getAttributeNS(NULL,logger);
+ logconf=SHIRE->getAttributeNS(nullptr,logger);
if (!logconf || !*logconf)
- logconf=e->getAttributeNS(NULL,logger);
+ logconf=e->getAttributeNS(nullptr,logger);
if (logconf && *logconf) {
auto_ptr_char logpath(logconf);
log.debug("loading new logging configuration from (%s), check log destination for status of configuration",logpath.get());
#endif
// First load any property sets.
- load(e,NULL,this);
+ load(e,nullptr,this);
const DOMElement* child;
string plugtype;
else {
child=XMLHelper::getFirstChildElement(e,Listener);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
if (type.get())
plugtype=type.get();
}
// First build any StorageServices.
child=XMLHelper::getFirstChildElement(e,_StorageService);
while (child) {
- auto_ptr_char id(child->getAttributeNS(NULL,_id));
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char id(child->getAttributeNS(nullptr,_id));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
try {
log.info("building StorageService (%s) of type %s...", id.get(), type.get());
m_outer->m_storage[id.get()] = xmlConf.StorageServiceManager.newPlugin(type.get(),child);
}
// Replay cache.
- StorageService* replaySS=NULL;
+ StorageService* replaySS=nullptr;
child=XMLHelper::getFirstChildElement(e,_ReplayCache);
if (child) {
- auto_ptr_char ssid(child->getAttributeNS(NULL,_StorageService));
+ auto_ptr_char ssid(child->getAttributeNS(nullptr,_StorageService));
if (ssid.get() && *ssid.get()) {
if (m_outer->m_storage.count(ssid.get()))
replaySS = m_outer->m_storage[ssid.get()];
// ArtifactMap
child=XMLHelper::getFirstChildElement(e,_ArtifactMap);
if (child) {
- auto_ptr_char ssid(child->getAttributeNS(NULL,_StorageService));
+ auto_ptr_char ssid(child->getAttributeNS(nullptr,_StorageService));
if (ssid.get() && *ssid.get() && m_outer->m_storage.count(ssid.get())) {
log.info("building ArtifactMap on top of StorageService (%s)...", ssid.get());
samlConf.setArtifactMap(new ArtifactMap(child, m_outer->m_storage[ssid.get()]));
}
}
- if (samlConf.getArtifactMap()==NULL) {
+ if (samlConf.getArtifactMap()==nullptr) {
log.info("building in-memory ArtifactMap...");
samlConf.setArtifactMap(new ArtifactMap(child));
}
}
child=XMLHelper::getFirstChildElement(e,_SessionCache);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building SessionCache of type %s...",type.get());
m_outer->m_sessionCache=conf.SessionCacheManager.newPlugin(type.get(), child);
}
#ifndef SHIBSP_LITE
child = XMLHelper::getLastChildElement(e, SecurityPolicies);
if (child) {
- const XMLCh* algs = NULL;
+ const XMLCh* algs = nullptr;
const DOMElement* alglist = XMLHelper::getLastChildElement(child, AlgorithmBlacklist);
if (alglist && alglist->hasChildNodes()) {
algs = alglist->getFirstChild()->getNodeValue();
if (conf.isEnabled(SPConfig::RequestMapping)) {
child=XMLHelper::getFirstChildElement(e,_RequestMapper);
if (child) {
- auto_ptr_char type(child->getAttributeNS(NULL,_type));
+ auto_ptr_char type(child->getAttributeNS(nullptr,_type));
log.info("building RequestMapper of type %s...",type.get());
m_requestMapper=conf.RequestMapperManager.newPlugin(type.get(),child);
}
PolicyNodeFilter filter;
child = XMLHelper::getFirstChildElement(child,Policy);
while (child) {
- auto_ptr_char id(child->getAttributeNS(NULL,_id));
+ auto_ptr_char id(child->getAttributeNS(nullptr,_id));
pair< PropertySet*,vector<const SecurityPolicyRule*> >& rules = m_policyMap[id.get()];
- rules.first = NULL;
+ rules.first = nullptr;
auto_ptr<DOMPropertySet> settings(new DOMPropertySet());
- settings->load(child, NULL, &filter);
+ settings->load(child, nullptr, &filter);
rules.first = settings.release();
// Process PolicyRule elements.
const DOMElement* rule = XMLHelper::getFirstChildElement(child,PolicyRule);
while (rule) {
- auto_ptr_char type(rule->getAttributeNS(NULL,_type));
+ auto_ptr_char type(rule->getAttributeNS(nullptr,_type));
try {
rules.second.push_back(samlConf.SecurityPolicyRuleManager.newPlugin(type.get(),rule));
}
log.warn("detected legacy Policy configuration, please convert to new PolicyRule syntax");
rule = XMLHelper::getFirstChildElement(child,Rule);
while (rule) {
- auto_ptr_char type(rule->getAttributeNS(NULL,_type));
+ auto_ptr_char type(rule->getAttributeNS(nullptr,_type));
try {
rules.second.push_back(samlConf.SecurityPolicyRuleManager.newPlugin(type.get(),rule));
}
// Manually add a basic Conditions rule.
log.info("installing a default Conditions rule in policy (%s) for compatibility with legacy configuration", id.get());
- rules.second.push_back(samlConf.SecurityPolicyRuleManager.newPlugin(CONDITIONS_POLICY_RULE, NULL));
+ rules.second.push_back(samlConf.SecurityPolicyRuleManager.newPlugin(CONDITIONS_POLICY_RULE, nullptr));
}
child = XMLHelper::getNextSiblingElement(child,Policy);
child = XMLHelper::getLastChildElement(e,TransportOption);
while (child) {
if (child->hasChildNodes()) {
- auto_ptr_char provider(child->getAttributeNS(NULL,_provider));
- auto_ptr_char option(child->getAttributeNS(NULL,_option));
+ auto_ptr_char provider(child->getAttributeNS(nullptr,_provider));
+ auto_ptr_char option(child->getAttributeNS(nullptr,_option));
auto_ptr_char value(child->getFirstChild()->getNodeValue());
if (provider.get() && *provider.get() && option.get() && *option.get() && value.get() && *value.get()) {
m_transportOptions.push_back(make_pair(string(provider.get()), make_pair(string(option.get()), string(value.get()))));
m_policyMap.clear();
#endif
delete m_requestMapper;
- m_requestMapper = NULL;
+ m_requestMapper = nullptr;
if (m_document)
m_document->release();
- m_document = NULL;
+ m_document = nullptr;
}
#ifndef SHIBSP_LITE
}
// Repack for return to caller.
- DDF ret=DDF(NULL).unsafe_string(relayState.c_str());
+ DDF ret=DDF(nullptr).unsafe_string(relayState.c_str());
DDFJanitor jret(ret);
out << ret;
}
if (storage) {
SAMLConfig::getConfig().generateRandomBytes(rsKey,20);
rsKey = SAMLArtifact::toHex(rsKey);
- storage->createString("RelayState", rsKey.c_str(), value, time(NULL) + 600);
+ storage->createString("RelayState", rsKey.c_str(), value, time(nullptr) + 600);
}
else {
Category::getInstance(SHIBSP_LOGCAT".ServiceProvider").error(
}
// Repack for return to caller.
- DDF ret=DDF(NULL).string(rsKey.c_str());
+ DDF ret=DDF(nullptr).string(rsKey.c_str());
DDFJanitor jret(ret);
out << ret;
}
// If the data's empty, we'll send nothing back.
// If not, we don't need to round trip it, just send back the serialized DDF list.
if (postData.empty()) {
- DDF ret(NULL);
+ DDF ret(nullptr);
DDFJanitor jret(ret);
out << ret;
}
rsKey = SAMLArtifact::toHex(rsKey);
ostringstream params;
params << in["parameters"];
- storage->createString("PostData", rsKey.c_str(), params.str().c_str(), time(NULL) + 600);
+ storage->createString("PostData", rsKey.c_str(), params.str().c_str(), time(nullptr) + 600);
}
else {
Category::getInstance(SHIBSP_LOGCAT".ServiceProvider").error(
}
// Repack for return to caller.
- DDF ret=DDF(NULL).string(rsKey.c_str());
+ DDF ret=DDF(nullptr).string(rsKey.c_str());
DDFJanitor jret(ret);
out << ret;
}
pair<bool,DOMElement*> raw = ReloadableXMLFile::load();
// If we own it, wrap it.
- XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : NULL);
+ XercesJanitor<DOMDocument> docjanitor(raw.first ? raw.second->getOwnerDocument() : nullptr);
- XMLConfigImpl* impl = new XMLConfigImpl(raw.second, (m_impl==NULL), this, m_log);
+ XMLConfigImpl* impl = new XMLConfigImpl(raw.second, (m_impl==nullptr), this, 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());
delete m_impl;
m_impl = impl;
- return make_pair(false,(DOMElement*)NULL);
+ return make_pair(false,(DOMElement*)nullptr);
}
Lockable* lock() {return this;}
void unlock() {}
- const Credential* resolve(const CredentialCriteria* criteria=NULL) const {return NULL;}
+ const Credential* resolve(const CredentialCriteria* criteria=nullptr) const {return nullptr;}
vector<const Credential*>::size_type resolve(
- vector<const Credential*>& results, const CredentialCriteria* criteria=NULL
+ vector<const Credential*>& results, const CredentialCriteria* criteria=nullptr
) const {return 0;}
};
class SHIBSP_DLLLOCAL DynamicMetadataProvider : public saml2md::DynamicMetadataProvider
{
public:
- DynamicMetadataProvider(const xercesc::DOMElement* e=NULL);
+ DynamicMetadataProvider(const xercesc::DOMElement* e=nullptr);
virtual ~DynamicMetadataProvider() {
delete m_trust;
};
DynamicMetadataProvider::DynamicMetadataProvider(const DOMElement* e)
- : saml2md::DynamicMetadataProvider(e), m_verifyHost(true), m_ignoreTransport(false), m_encoded(true), m_trust(NULL)
+ : saml2md::DynamicMetadataProvider(e), m_verifyHost(true), m_ignoreTransport(false), m_encoded(true), m_trust(nullptr)
{
- const XMLCh* flag = e ? e->getAttributeNS(NULL, verifyHost) : NULL;
+ const XMLCh* flag = e ? e->getAttributeNS(nullptr, verifyHost) : nullptr;
if (flag && (*flag == chLatin_f || *flag == chDigit_0))
m_verifyHost = false;
- flag = e ? e->getAttributeNS(NULL, ignoreTransport) : NULL;
+ flag = e ? e->getAttributeNS(nullptr, ignoreTransport) : nullptr;
if (flag && (*flag == chLatin_t || *flag == chDigit_1)) {
m_ignoreTransport = true;
return;
}
- const DOMElement* child = e ? XMLHelper::getFirstChildElement(e, Subst) : NULL;
+ const DOMElement* child = e ? XMLHelper::getFirstChildElement(e, Subst) : nullptr;
if (child && child->hasChildNodes()) {
auto_ptr_char s(child->getFirstChild()->getNodeValue());
if (s.get() && *s.get()) {
m_subst = s.get();
- flag = child->getAttributeNS(NULL, encoded);
+ flag = child->getAttributeNS(nullptr, encoded);
if (flag && (*flag == chLatin_f || *flag == chDigit_0))
m_encoded = false;
}
}
if (m_subst.empty()) {
- child = e ? XMLHelper::getFirstChildElement(e, Regex) : NULL;
- if (child && child->hasChildNodes() && child->hasAttributeNS(NULL, match)) {
- auto_ptr_char m(child->getAttributeNS(NULL, match));
+ child = e ? XMLHelper::getFirstChildElement(e, Regex) : nullptr;
+ if (child && child->hasChildNodes() && child->hasAttributeNS(nullptr, match)) {
+ auto_ptr_char m(child->getAttributeNS(nullptr, match));
auto_ptr_char repl(child->getFirstChild()->getNodeValue());
if (m.get() && *m.get() && repl.get() && *repl.get()) {
m_match = m.get();
}
}
- child = e ? XMLHelper::getFirstChildElement(e, _TrustEngine) : NULL;
- auto_ptr_char t2(child ? child->getAttributeNS(NULL,type) : NULL);
+ child = e ? XMLHelper::getFirstChildElement(e, _TrustEngine) : nullptr;
+ auto_ptr_char t2(child ? child->getAttributeNS(nullptr,type) : nullptr);
if (t2.get()) {
TrustEngine* trust = XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(t2.get(), child);
if (!(m_trust = dynamic_cast<X509TrustEngine*>(trust))) {
if (!pch)
throw IOException("location was not a URL.");
string scheme(addr.m_endpoint, pch-addr.m_endpoint);
- SOAPTransport* transport=NULL;
+ SOAPTransport* transport=nullptr;
try {
transport = XMLToolingConfig::getConfig().SOAPTransportManager.newPlugin(scheme.c_str(), addr);
}
if (m_trust && !transport->setTrustEngine(m_trust, &dcr))
throw IOException("Unable to install X509TrustEngine into metadata resolver.");
- Locker credlocker(NULL, false);
- CredentialResolver* credResolver = NULL;
+ Locker credlocker(nullptr, false);
+ CredentialResolver* credResolver = nullptr;
pair<bool,const char*> authType=relyingParty->getString("authType");
if (!authType.first || !strcmp(authType.second,"TLS")) {
credResolver = mpc->application.getCredentialResolver();
}
try {
- // Use a NULL stream to trigger a body-less "GET" operation.
+ // Use a nullptr stream to trigger a body-less "GET" operation.
transport->send();
istream& msg = transport->receive();
- DOMDocument* doc=NULL;
+ DOMDocument* doc=nullptr;
StreamInputSource src(msg, "DynamicMetadataProvider");
Wrapper4InputSource dsrc(&src,false);
if (m_validate)
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* MetadataExtImpl.cpp
*
- * Implementation classes for Shibboleth metadata extensions schema
+ * Implementation classes for Shibboleth metadata extensions schema.
*/
#include "internal.h"
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_BOOLEAN_ATTRIB(Regexp,REGEXP,NULL);
+ MARSHALL_BOOLEAN_ATTRIB(Regexp,REGEXP,nullptr);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_BOOLEAN_ATTRIB(Regexp,REGEXP,NULL);
+ PROC_BOOLEAN_ATTRIB(Regexp,REGEXP,nullptr);
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_VerifyDepth=NULL;
+ m_VerifyDepth=nullptr;
}
public:
virtual ~KeyAuthorityImpl() {
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_INTEGER_ATTRIB(VerifyDepth,VERIFYDEPTH,NULL);
+ MARSHALL_INTEGER_ATTRIB(VerifyDepth,VERIFYDEPTH,nullptr);
marshallExtensionAttributes(domElement);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param valid true iff stale metadata should be ignored
*/
MetadataProviderCriteria(
- const Application& app, const XMLCh* id, const xmltooling::QName* q=NULL, const XMLCh* prot=NULL, bool valid=true
+ const Application& app, const XMLCh* id, const xmltooling::QName* q=nullptr, const XMLCh* prot=nullptr, bool valid=true
);
/**
* @param valid true iff stale metadata should be ignored
*/
MetadataProviderCriteria(
- const Application& app, const char* id, const xmltooling::QName* q=NULL, const XMLCh* prot=NULL, bool valid=true
+ const Application& app, const char* id, const xmltooling::QName* q=nullptr, const XMLCh* prot=nullptr, bool valid=true
);
/**
* @param valid true iff stale metadata should be ignored
*/
MetadataProviderCriteria(
- const Application& app, const opensaml::SAMLArtifact* a, const xmltooling::QName* q=NULL, const XMLCh* prot=NULL, bool valid=true
+ const Application& app, const opensaml::SAMLArtifact* a, const xmltooling::QName* q=nullptr, const XMLCh* prot=nullptr, bool valid=true
);
~MetadataProviderCriteria();
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param restore service to "restore" registration for
* @return true iff the current service was still registered
*/
- virtual bool unregListener(const char* address, Remoted* current, Remoted* restore=NULL);
+ virtual bool unregListener(const char* address, Remoted* current, Remoted* restore=nullptr);
/**
* Returns current service registered at an address, if any.
*
* @param address message address to access
- * @return registered service, or NULL
+ * @return registered service, or nullptr
*/
virtual Remoted* lookup(const char* address) const;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
DDF getmember(const char* path) const;
// debugging
- void dump(FILE* f=NULL, int indent=0) const;
+ void dump(FILE* f=nullptr, int indent=0) const;
// serialization functions need private access
friend SHIBSP_API std::ostream& operator<<(std::ostream& os, const DDF& obj);
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Remoted* ListenerService::regListener(const char* address, Remoted* listener)
{
- Remoted* ret=NULL;
+ Remoted* ret=nullptr;
map<string,Remoted*>::const_iterator i=m_listenerMap.find(address);
if (i!=m_listenerMap.end())
ret=i->second;
Remoted* ListenerService::lookup(const char *address) const
{
map<string,Remoted*>::const_iterator i=m_listenerMap.find(address);
- return (i==m_listenerMap.end()) ? NULL : i->second;
+ return (i==m_listenerMap.end()) ? nullptr : i->second;
}
void ListenerService::receive(DDF &in, ostream& out)
if (!in.name())
throw ListenerException("Incoming message with no destination address rejected.");
else if (!strcmp("ping",in.name())) {
- DDF outmsg=DDF(NULL).integer(in.integer() + 1);
+ DDF outmsg=DDF(nullptr).integer(in.integer() + 1);
DDFJanitor jan(outmsg);
out << outmsg;
}
}
SocketListener::SocketListener(const DOMElement* e)
- : m_catchAll(false), log(&Category::getInstance(SHIBSP_LOGCAT".Listener")), m_socketpool(NULL),
- m_shutdown(NULL), m_child_lock(NULL), m_child_wait(NULL), m_stackSize(0), m_socket((ShibSocket)0)
+ : m_catchAll(false), log(&Category::getInstance(SHIBSP_LOGCAT".Listener")), m_socketpool(nullptr),
+ m_shutdown(nullptr), m_child_lock(nullptr), m_child_wait(nullptr), m_stackSize(0), m_socket((ShibSocket)0)
{
// Are we a client?
if (SPConfig::getConfig().isEnabled(SPConfig::InProcess)) {
m_child_wait = CondWait::create();
static const XMLCh stackSize[] = UNICODE_LITERAL_9(s,t,a,c,k,S,i,z,e);
- const XMLCh* attr = e ? e->getAttributeNS(NULL, stackSize) : NULL;
+ const XMLCh* attr = e ? e->getAttributeNS(nullptr, stackSize) : nullptr;
if (attr && *attr)
m_stackSize = XMLString::parseInt(attr) * 1024;
}
if (out.isstring() && out.name() && !strcmp(out.name(),"exception")) {
// Reconstitute exception object.
DDFJanitor jout(out);
- XMLToolingException* except=NULL;
+ XMLToolingException* except=nullptr;
try {
except=XMLToolingException::fromString(out.string());
log->error("remoted message returned an error: %s", except->what());
// Now we can clean up and exit the thread.
delete child;
- return NULL;
+ return nullptr;
}
ServerThread::ServerThread(SocketListener::ShibSocket& s, SocketListener* listener, unsigned long id)
- : m_sock(s), m_child(NULL), m_listener(listener)
+ : m_sock(s), m_child(nullptr), m_listener(listener)
{
ostringstream buf;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* TCPListener.cpp
*
- * TCP-based SocketListener implementation
+ * TCP-based SocketListener implementation.
*/
#include "internal.h"
TCPListener::TCPListener(const DOMElement* e) : SocketListener(e), m_address("127.0.0.1"), m_port(12345)
{
// We're stateless, but we need to load the configuration.
- const XMLCh* tag=e->getAttributeNS(NULL,address);
+ const XMLCh* tag=e->getAttributeNS(nullptr,address);
if (tag && *tag) {
auto_ptr_char a(tag);
m_address=a.get();
}
- tag=e->getAttributeNS(NULL,port);
+ tag=e->getAttributeNS(nullptr,port);
if (tag && *tag) {
m_port=XMLString::parseInt(tag);
if (m_port==0)
m_port=12345;
}
- tag=e->getAttributeNS(NULL,acl);
+ tag=e->getAttributeNS(nullptr,acl);
if (tag && *tag) {
auto_ptr_char temp(tag);
string sockacl=temp.get();
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* UnixListener.cpp
*
- * Unix Domain-based SocketListener implementation
+ * Unix Domain-based SocketListener implementation.
*/
#include "internal.h"
UnixListener::UnixListener(const DOMElement* e) : SocketListener(e), m_address("/var/run/shar-socket"), m_bound(false)
{
- const XMLCh* tag=e->getAttributeNS(NULL,address);
+ const XMLCh* tag=e->getAttributeNS(nullptr,address);
if (tag && *tag) {
auto_ptr_char a(tag);
m_address=a.get();
bool UnixListener::accept(ShibSocket& listener, ShibSocket& s) const
{
- s=::accept(listener,NULL,NULL);
+ s=::accept(listener,nullptr,nullptr);
if (s < 0)
return log_error();
return true;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
char* ddf_strdup(const char* s)
{
- return (s && *s) ? strdup(s) : NULL;
+ return (s && *s) ? strdup(s) : nullptr;
}
#define MAX_NAME_LEN 255
char* ddf_token(const char** path, char* name)
{
*name=0;
- if (*path==NULL || **path==0)
+ if (*path==nullptr || **path==0)
return name;
const char* temp=strchr(*path,'.');
- if (temp==NULL) {
+ if (temp==nullptr) {
strncpy(name,*path,MAX_NAME_LEN);
name[MAX_NAME_LEN]=0;
- *path=NULL;
+ *path=nullptr;
}
else if (temp>*path) {
strncpy(name,*path,temp-*path);
// body implementation
struct shibsp::ddf_body_t {
- ddf_body_t() : name(NULL), parent(NULL), next(NULL), prev(NULL), type(DDF_EMPTY) {}
+ ddf_body_t() : name(nullptr), parent(nullptr), next(nullptr), prev(nullptr), type(DDF_EMPTY) {}
char* name; // name of node
ddf_body_t* parent; // parent node, if any
// library implementation
-DDF::DDF() : m_handle(NULL)
+DDF::DDF() : m_handle(nullptr)
{
}
DDF& DDF::destroy()
{
- remove().empty().name(NULL);
+ remove().empty().name(nullptr);
delete m_handle;
- m_handle=NULL;
+ m_handle=nullptr;
return *this;
}
DDF DDF::copy() const
{
- if (m_handle==NULL)
+ if (m_handle==nullptr)
return DDF();
switch (m_handle->type) {
temp.m_handle=child;
DDF temp2=temp.copy();
copy.add(temp2);
- if (copy.m_handle==NULL)
+ if (copy.m_handle==nullptr)
return copy;
if (m_handle->value.children.current==child)
copy.m_handle->value.children.current=copy.m_handle->value.children.last;
const char* DDF::name() const
{
- return (m_handle) ? m_handle->name : NULL;
+ return (m_handle) ? m_handle->name : nullptr;
}
DDF& DDF::name(const char* name)
destroy();
}
else
- m_handle->name=NULL;
+ m_handle->name=nullptr;
}
return *this;
}
const char* DDF::string() const
{
- return isstring() ? m_handle->value.string : NULL;
+ return isstring() ? m_handle->value.string : nullptr;
}
long DDF::integer() const
void* DDF::pointer() const
{
- return ispointer() ? m_handle->value.pointer : NULL;
+ return ispointer() ? m_handle->value.pointer : nullptr;
}
size_t DDF::strlen() const
bool DDF::operator==(const char* s) const
{
- if (string()==NULL || s==NULL)
- return (string()==NULL && s==NULL);
+ if (string()==nullptr || s==nullptr)
+ return (string()==nullptr && s==nullptr);
else
return (::strcmp(string(),s)==0);
}
{
if (empty().m_handle) {
m_handle->type=ddf_body_t::DDF_STRUCT;
- m_handle->value.children.first=NULL;
- m_handle->value.children.last=NULL;
- m_handle->value.children.current=NULL;
+ m_handle->value.children.first=nullptr;
+ m_handle->value.children.last=nullptr;
+ m_handle->value.children.current=nullptr;
m_handle->value.children.count=0;
}
return *this;
{
if (empty().m_handle) {
m_handle->type=ddf_body_t::DDF_LIST;
- m_handle->value.children.first=NULL;
- m_handle->value.children.last=NULL;
- m_handle->value.children.current=NULL;
+ m_handle->value.children.first=nullptr;
+ m_handle->value.children.last=nullptr;
+ m_handle->value.children.current=nullptr;
m_handle->value.children.count=0;
}
return *this;
m_handle->parent->value.children.current=m_handle->prev;
m_handle->parent->value.children.count--;
- m_handle->parent=NULL;
- m_handle->next=NULL;
- m_handle->prev=NULL;
+ m_handle->parent=nullptr;
+ m_handle->next=nullptr;
+ m_handle->prev=nullptr;
return *this;
}
{
DDF p;
- p.m_handle=(m_handle ? m_handle->parent : NULL);
+ p.m_handle=(m_handle ? m_handle->parent : nullptr);
return p;
}
if (*name == 0)
return current;
else if (*name == '[') {
- unsigned long i = strtoul(name+1, NULL, 10);
+ unsigned long i = strtoul(name+1, nullptr, 10);
if (islist() && i < m_handle->value.children.count)
current=operator[](i);
else if (i == 0)
putc('"',f);
}
else
- fprintf(f,"NULL");
+ fprintf(f,"nullptr");
break;
case ddf_body_t::DDF_INT:
if (m_handle->value.pointer)
fprintf(f,"%p",m_handle->value.pointer);
else
- fprintf(f,"NULL");
+ fprintf(f,"nullptr");
break;
default:
}
}
else
- fprintf(f,"NULL");
+ fprintf(f,"nullptr");
fprintf(f,";\n");
}
DDF deserialize(DOMElement* root, bool lowercase)
{
- DDF obj(NULL);
- auto_ptr_char name_val(root->getAttributeNS(NULL, _name));
+ DDF obj(nullptr);
+ auto_ptr_char name_val(root->getAttributeNS(nullptr, _name));
if (name_val.get() && *name_val.get()) {
if (lowercase)
for (char* pch=const_cast<char*>(name_val.get()); *pch=tolower(*pch); pch++);
if (XMLString::equals(tag,_string)) {
DOMNode* child=root->getFirstChild();
if (child && child->getNodeType()==DOMNode::TEXT_NODE) {
- const XMLCh* unsafe = root->getAttributeNS(NULL, _unsafe);
+ const XMLCh* unsafe = root->getAttributeNS(nullptr, _unsafe);
if (unsafe && *unsafe==chDigit_1) {
// If it's unsafe, it's not UTF-8 data, so we have to convert to ASCII and decode it.
char* encoded = XMLString::transcode(child->getNodeValue());
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* PKIXTrustEngine.cpp
*
- * Shibboleth-specific PKIX-validation TrustEngine
+ * Shibboleth-specific PKIX-validation TrustEngine.
*/
#include "internal.h"
class SHIBSP_DLLLOCAL PKIXTrustEngine : public AbstractPKIXTrustEngine, public ObservableMetadataProvider::Observer
{
public:
- PKIXTrustEngine(const DOMElement* e=NULL) : AbstractPKIXTrustEngine(e), m_credLock(RWLock::create()) {
+ PKIXTrustEngine(const DOMElement* e=nullptr) : AbstractPKIXTrustEngine(e), m_credLock(RWLock::create()) {
}
virtual ~PKIXTrustEngine() {
for (map<const ObservableMetadataProvider*,credmap_t>::iterator i=m_credentialMap.begin(); i!=m_credentialMap.end(); ++i) {
}
AbstractPKIXTrustEngine::PKIXValidationInfoIterator* getPKIXValidationInfoIterator(
- const CredentialResolver& pkixSource, CredentialCriteria* criteria=NULL
+ const CredentialResolver& pkixSource, CredentialCriteria* criteria=nullptr
) const;
void onEvent(const ObservableMetadataProvider& metadata) const {
MetadataPKIXIterator::MetadataPKIXIterator(
const PKIXTrustEngine& engine, const MetadataProvider& pkixSource, MetadataCredentialCriteria& criteria
- ) : m_caching(false), m_engine(engine), m_obj(criteria.getRole().getParent()), m_extBlock(NULL), m_current(NULL)
+ ) : m_caching(false), m_engine(engine), m_obj(criteria.getRole().getParent()), m_extBlock(nullptr), m_current(nullptr)
{
// If we can't hook the metadata for changes, then we can't do any caching and the rest of this is academic.
const ObservableMetadataProvider* observable = dynamic_cast<const ObservableMetadataProvider*>(&pkixSource);
// If we get here, we hit the end of this Extensions block.
// Climb a level, if possible.
m_obj = m_obj->getParent();
- m_current = NULL;
- m_extBlock = NULL;
+ m_current = nullptr;
+ m_extBlock = nullptr;
}
// If we get here, we try and find an Extensions block.
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param validate true iff XML parsing should be done with validation
* @param policyId identifies policy rules to auto-attach, defaults to the application's set
*/
- SecurityPolicy(const Application& application, const xmltooling::QName* role=NULL, bool validate=true, const char* policyId=NULL);
+ SecurityPolicy(const Application& application, const xmltooling::QName* role=nullptr, bool validate=true, const char* policyId=nullptr);
virtual ~SecurityPolicy();
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{81F0F7A6-DC36-46EF-957F-F9E81D4403F7}</ProjectGuid>\r
+ <RootNamespace>shibsp-lite</RootNamespace>\r
+ <Keyword>Win32Proj</Keyword>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(ProjectName)-$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)1_4</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)1_4</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)1_4D</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)1_4D</TargetName>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WANT_TCP_SHAR;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_UNICODE;UNICODE;SHIBSP_LITE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling-lite1D.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1D.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WANT_TCP_SHAR;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_UNICODE;UNICODE;SHIBSP_LITE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xmltooling-lite1D.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1D.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WANT_TCP_SHAR;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_UNICODE;UNICODE;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling-lite1.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WANT_TCP_SHAR;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_UNICODE;UNICODE;SHIBSP_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xmltooling-lite1.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="AbstractSPRequest.cpp" />\r
+ <ClCompile Include="Application.cpp" />\r
+ <ClCompile Include="ServiceProvider.cpp" />\r
+ <ClCompile Include="SPConfig.cpp" />\r
+ <ClCompile Include="util\CGIParser.cpp" />\r
+ <ClCompile Include="util\DOMPropertySet.cpp" />\r
+ <ClCompile Include="util\SPConstants.cpp" />\r
+ <ClCompile Include="util\TemplateParameters.cpp" />\r
+ <ClCompile Include="remoting\impl\ddf.cpp" />\r
+ <ClCompile Include="remoting\impl\ListenerService.cpp" />\r
+ <ClCompile Include="remoting\impl\SocketListener.cpp" />\r
+ <ClCompile Include="remoting\impl\TCPListener.cpp" />\r
+ <ClCompile Include="impl\ChainingAccessControl.cpp" />\r
+ <ClCompile Include="impl\StorageServiceSessionCache.cpp" />\r
+ <ClCompile Include="impl\XMLAccessControl.cpp" />\r
+ <ClCompile Include="impl\XMLRequestMapper.cpp" />\r
+ <ClCompile Include="impl\XMLServiceProvider.cpp" />\r
+ <ClCompile Include="attribute\Attribute.cpp" />\r
+ <ClCompile Include="attribute\ExtensibleAttribute.cpp" />\r
+ <ClCompile Include="attribute\NameIDAttribute.cpp" />\r
+ <ClCompile Include="attribute\ScopedAttribute.cpp" />\r
+ <ClCompile Include="attribute\SimpleAttribute.cpp" />\r
+ <ClCompile Include="attribute\XMLAttribute.cpp" />\r
+ <ClCompile Include="handler\impl\AbstractHandler.cpp" />\r
+ <ClCompile Include="handler\impl\AssertionConsumerService.cpp" />\r
+ <ClCompile Include="handler\impl\AssertionLookup.cpp" />\r
+ <ClCompile Include="handler\impl\ChainingLogoutInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\ChainingSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\CookieSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\FormSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\LocalLogoutInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\LogoutHandler.cpp" />\r
+ <ClCompile Include="handler\impl\MetadataGenerator.cpp" />\r
+ <ClCompile Include="handler\impl\RemotedHandler.cpp" />\r
+ <ClCompile Include="handler\impl\SAML1Consumer.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2ArtifactResolution.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2Consumer.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2Logout.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2LogoutInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2NameIDMgmt.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2SessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\SAMLDSSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\SessionHandler.cpp" />\r
+ <ClCompile Include="handler\impl\SessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\Shib1SessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\StatusHandler.cpp" />\r
+ <ClCompile Include="handler\impl\TransformSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\WAYFSessionInitiator.cpp" />\r
+ <ClCompile Include="lite\CommonDomainCookie.cpp" />\r
+ <ClCompile Include="lite\SAMLConstants.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="remoting\impl\SocketListener.h" />\r
+ <ClInclude Include="AbstractSPRequest.h" />\r
+ <ClInclude Include="AccessControl.h" />\r
+ <ClInclude Include="Application.h" />\r
+ <ClInclude Include="ApplicationAwarePlugin.h" />\r
+ <ClInclude Include="base.h" />\r
+ <ClInclude Include="exceptions.h" />\r
+ <ClInclude Include="internal.h" />\r
+ <ClInclude Include="RequestMapper.h" />\r
+ <ClInclude Include="resource.h" />\r
+ <ClInclude Include="ServiceProvider.h" />\r
+ <ClInclude Include="SessionCache.h" />\r
+ <ClInclude Include="SessionCacheEx.h" />\r
+ <ClInclude Include="SPConfig.h" />\r
+ <ClInclude Include="SPRequest.h" />\r
+ <ClInclude Include="version.h" />\r
+ <ClInclude Include="util\CGIParser.h" />\r
+ <ClInclude Include="util\DOMPropertySet.h" />\r
+ <ClInclude Include="util\PropertySet.h" />\r
+ <ClInclude Include="util\SPConstants.h" />\r
+ <ClInclude Include="util\TemplateParameters.h" />\r
+ <ClInclude Include="remoting\ddf.h" />\r
+ <ClInclude Include="remoting\ListenerService.h" />\r
+ <ClInclude Include="attribute\Attribute.h" />\r
+ <ClInclude Include="attribute\ExtensibleAttribute.h" />\r
+ <ClInclude Include="attribute\NameIDAttribute.h" />\r
+ <ClInclude Include="attribute\ScopedAttribute.h" />\r
+ <ClInclude Include="attribute\SimpleAttribute.h" />\r
+ <ClInclude Include="attribute\XMLAttribute.h" />\r
+ <ClInclude Include="handler\AbstractHandler.h" />\r
+ <ClInclude Include="handler\AssertionConsumerService.h" />\r
+ <ClInclude Include="handler\Handler.h" />\r
+ <ClInclude Include="handler\LogoutHandler.h" />\r
+ <ClInclude Include="handler\RemotedHandler.h" />\r
+ <ClInclude Include="handler\SessionInitiator.h" />\r
+ <ClInclude Include="lite\CommonDomainCookie.h" />\r
+ <ClInclude Include="lite\SAMLConstants.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibsp.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ <None Include="paths.h.in" />\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup>\r
+ <Filter Include="Source Files">\r
+ <UniqueIdentifier>{4FC737F2-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+ </Filter>\r
+ <Filter Include="Source Files\util">\r
+ <UniqueIdentifier>{729ea3af-cb77-4897-b55c-b18a4c66817f}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\remoting">\r
+ <UniqueIdentifier>{7b456f03-9c40-438c-8b69-c1676ec904f6}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\remoting\impl">\r
+ <UniqueIdentifier>{623deb32-df2f-4bad-abcd-96d2275eaafd}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\impl">\r
+ <UniqueIdentifier>{92af54d1-b5c1-4391-9b8a-d7ee57cae671}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\attribute">\r
+ <UniqueIdentifier>{354c1fc9-211b-48f9-99c1-27f5065a08fc}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\handler">\r
+ <UniqueIdentifier>{dcb5bf8b-b08d-4bb4-9025-52a624c06312}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\handler\impl">\r
+ <UniqueIdentifier>{02b1ace5-7717-4406-9643-901632993d12}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\lite">\r
+ <UniqueIdentifier>{b0e40290-ca47-49fb-8484-99d3fb5287f2}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files">\r
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFC}</UniqueIdentifier>\r
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+ </Filter>\r
+ <Filter Include="Header Files\util">\r
+ <UniqueIdentifier>{51edefcb-98b4-4be2-8a21-69e248ce62cc}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\remoting">\r
+ <UniqueIdentifier>{14c2631a-de71-4a3a-a761-b2a38519bd77}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\attribute">\r
+ <UniqueIdentifier>{4adb84e6-4b87-43b7-a7a9-bbb903ff8bb5}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\handler">\r
+ <UniqueIdentifier>{242efec0-e402-4083-8719-9e0eb247d24a}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\lite">\r
+ <UniqueIdentifier>{810cab8c-6d86-43af-8ec7-e4cfa6a42ff9}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Resource Files">\r
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD02}</UniqueIdentifier>\r
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\r
+ </Filter>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="AbstractSPRequest.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Application.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="ServiceProvider.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="SPConfig.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\CGIParser.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\DOMPropertySet.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\SPConstants.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\TemplateParameters.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\ddf.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\ListenerService.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\SocketListener.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\TCPListener.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\ChainingAccessControl.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\StorageServiceSessionCache.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\XMLAccessControl.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\XMLRequestMapper.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\XMLServiceProvider.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\Attribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\ExtensibleAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\NameIDAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\ScopedAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\SimpleAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\XMLAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\AbstractHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\AssertionConsumerService.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\AssertionLookup.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\ChainingLogoutInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\ChainingSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\CookieSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\FormSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\LocalLogoutInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\LogoutHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\MetadataGenerator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\RemotedHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML1Consumer.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2ArtifactResolution.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2Consumer.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2Logout.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2LogoutInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2NameIDMgmt.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2SessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAMLDSSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SessionHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\Shib1SessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\StatusHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\TransformSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\WAYFSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="lite\CommonDomainCookie.cpp">\r
+ <Filter>Source Files\lite</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="lite\SAMLConstants.cpp">\r
+ <Filter>Source Files\lite</Filter>\r
+ </ClCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="remoting\impl\SocketListener.h">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="AbstractSPRequest.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="AccessControl.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Application.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="ApplicationAwarePlugin.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="base.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="exceptions.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="internal.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="RequestMapper.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="resource.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="ServiceProvider.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SessionCache.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SessionCacheEx.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SPConfig.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SPRequest.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="version.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\CGIParser.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\DOMPropertySet.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\PropertySet.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\SPConstants.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\TemplateParameters.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="remoting\ddf.h">\r
+ <Filter>Header Files\remoting</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="remoting\ListenerService.h">\r
+ <Filter>Header Files\remoting</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\Attribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\ExtensibleAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\NameIDAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\ScopedAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\SimpleAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\XMLAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\AbstractHandler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\AssertionConsumerService.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\Handler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\LogoutHandler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\RemotedHandler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\SessionInitiator.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="lite\CommonDomainCookie.h">\r
+ <Filter>Header Files\lite</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="lite\SAMLConstants.h">\r
+ <Filter>Header Files\lite</Filter>\r
+ </ClInclude>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibsp.rc">\r
+ <Filter>Resource Files</Filter>\r
+ </ResourceCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ <None Include="paths.h.in" />\r
+ </ItemGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{81F0F7A6-DC36-46EF-957F-F9E81D4403F6}</ProjectGuid>\r
+ <RootNamespace>shibsp</RootNamespace>\r
+ <Keyword>Win32Proj</Keyword>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)1_4D</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)1_4D</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)1_4</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)1_4</TargetName>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WANT_TCP_SHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_UNICODE;UNICODE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xsec_1D.lib;saml2D.lib;xmltooling1D.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1D.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WANT_TCP_SHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_UNICODE;UNICODE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;xerces-c_3D.lib;xsec_1D.lib;saml2D.lib;xmltooling1D.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1D.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WANT_TCP_SHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xsec_1.lib;saml2.lib;xmltooling1.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WANT_TCP_SHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;xerces-c_3.lib;xsec_1.lib;saml2.lib;xmltooling1.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Windows</SubSystem>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(TargetDir)$(ProjectName)1.lib</ImportLibrary>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="AbstractSPRequest.cpp" />\r
+ <ClCompile Include="Application.cpp" />\r
+ <ClCompile Include="ServiceProvider.cpp" />\r
+ <ClCompile Include="SPConfig.cpp" />\r
+ <ClCompile Include="util\CGIParser.cpp" />\r
+ <ClCompile Include="util\DOMPropertySet.cpp" />\r
+ <ClCompile Include="util\SPConstants.cpp" />\r
+ <ClCompile Include="util\TemplateParameters.cpp" />\r
+ <ClCompile Include="security\PKIXTrustEngine.cpp" />\r
+ <ClCompile Include="security\SecurityPolicy.cpp" />\r
+ <ClCompile Include="metadata\DynamicMetadataProvider.cpp" />\r
+ <ClCompile Include="metadata\MetadataExtImpl.cpp" />\r
+ <ClCompile Include="metadata\MetadataExtSchemaValidators.cpp" />\r
+ <ClCompile Include="metadata\MetadataProviderCriteria.cpp" />\r
+ <ClCompile Include="remoting\impl\ddf.cpp" />\r
+ <ClCompile Include="remoting\impl\ListenerService.cpp" />\r
+ <ClCompile Include="remoting\impl\SocketListener.cpp" />\r
+ <ClCompile Include="remoting\impl\TCPListener.cpp" />\r
+ <ClCompile Include="impl\ChainingAccessControl.cpp" />\r
+ <ClCompile Include="impl\StorageServiceSessionCache.cpp" />\r
+ <ClCompile Include="impl\XMLAccessControl.cpp" />\r
+ <ClCompile Include="impl\XMLRequestMapper.cpp" />\r
+ <ClCompile Include="impl\XMLServiceProvider.cpp" />\r
+ <ClCompile Include="attribute\Attribute.cpp" />\r
+ <ClCompile Include="attribute\DOMAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\ExtensibleAttribute.cpp" />\r
+ <ClCompile Include="attribute\KeyInfoAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\NameIDAttribute.cpp" />\r
+ <ClCompile Include="attribute\NameIDAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\NameIDFromScopedAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\ScopedAttribute.cpp" />\r
+ <ClCompile Include="attribute\ScopedAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\SimpleAttribute.cpp" />\r
+ <ClCompile Include="attribute\StringAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\XMLAttribute.cpp" />\r
+ <ClCompile Include="attribute\XMLAttributeDecoder.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\ChainingAttributeExtractor.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\ChainingAttributeResolver.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\DelegationAttributeExtractor.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\KeyDescriptorAttributeExtractor.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\QueryAttributeResolver.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\SimpleAggregationAttributeResolver.cpp" />\r
+ <ClCompile Include="attribute\resolver\impl\XMLAttributeExtractor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AndMatchFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AnyMatchFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeFilter.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeIssuerInEntityGroupFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeIssuerRegexFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeIssuerStringFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeRequesterInEntityGroupFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeRequesterRegexFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeRequesterStringFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeScopeMatchesShibMDScopeFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeScopeRegexFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeScopeStringFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeValueRegexFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AttributeValueStringFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AuthenticationMethodRegexFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\AuthenticationMethodStringFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\BasicFilteringContext.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\ChainingAttributeFilter.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\MatchFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\NotMatchFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\NumberOfAttributeValuesFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\OrMatchFunctor.cpp" />\r
+ <ClCompile Include="attribute\filtering\impl\XMLAttributeFilter.cpp" />\r
+ <ClCompile Include="binding\impl\ArtifactResolver.cpp" />\r
+ <ClCompile Include="binding\impl\SOAPClient.cpp" />\r
+ <ClCompile Include="handler\impl\AbstractHandler.cpp" />\r
+ <ClCompile Include="handler\impl\AssertionConsumerService.cpp" />\r
+ <ClCompile Include="handler\impl\AssertionLookup.cpp" />\r
+ <ClCompile Include="handler\impl\ChainingLogoutInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\ChainingSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\CookieSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\FormSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\LocalLogoutInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\LogoutHandler.cpp" />\r
+ <ClCompile Include="handler\impl\MetadataGenerator.cpp" />\r
+ <ClCompile Include="handler\impl\RemotedHandler.cpp" />\r
+ <ClCompile Include="handler\impl\SAML1Consumer.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2ArtifactResolution.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2Consumer.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2Logout.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2LogoutInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2NameIDMgmt.cpp" />\r
+ <ClCompile Include="handler\impl\SAML2SessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\SAMLDSSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\SessionHandler.cpp" />\r
+ <ClCompile Include="handler\impl\SessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\Shib1SessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\StatusHandler.cpp" />\r
+ <ClCompile Include="handler\impl\TransformSessionInitiator.cpp" />\r
+ <ClCompile Include="handler\impl\WAYFSessionInitiator.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="remoting\impl\SocketListener.h" />\r
+ <ClInclude Include="AbstractSPRequest.h" />\r
+ <ClInclude Include="AccessControl.h" />\r
+ <ClInclude Include="Application.h" />\r
+ <ClInclude Include="base.h" />\r
+ <ClInclude Include="exceptions.h" />\r
+ <ClInclude Include="internal.h" />\r
+ <ClInclude Include="RequestMapper.h" />\r
+ <ClInclude Include="resource.h" />\r
+ <ClInclude Include="ServiceProvider.h" />\r
+ <ClInclude Include="SessionCache.h" />\r
+ <ClInclude Include="SessionCacheEx.h" />\r
+ <ClInclude Include="SPConfig.h" />\r
+ <ClInclude Include="SPRequest.h" />\r
+ <ClInclude Include="TransactionLog.h" />\r
+ <ClInclude Include="version.h" />\r
+ <ClInclude Include="util\CGIParser.h" />\r
+ <ClInclude Include="util\DOMPropertySet.h" />\r
+ <ClInclude Include="util\PropertySet.h" />\r
+ <ClInclude Include="util\SPConstants.h" />\r
+ <ClInclude Include="util\TemplateParameters.h" />\r
+ <ClInclude Include="security\PKIXTrustEngine.h" />\r
+ <ClInclude Include="security\SecurityPolicy.h" />\r
+ <ClInclude Include="remoting\ddf.h" />\r
+ <ClInclude Include="remoting\ListenerService.h" />\r
+ <ClInclude Include="attribute\Attribute.h" />\r
+ <ClInclude Include="attribute\AttributeDecoder.h" />\r
+ <ClInclude Include="attribute\ExtensibleAttribute.h" />\r
+ <ClInclude Include="attribute\NameIDAttribute.h" />\r
+ <ClInclude Include="attribute\ScopedAttribute.h" />\r
+ <ClInclude Include="attribute\SimpleAttribute.h" />\r
+ <ClInclude Include="attribute\XMLAttribute.h" />\r
+ <ClInclude Include="attribute\resolver\AttributeExtractor.h" />\r
+ <ClInclude Include="attribute\resolver\AttributeResolver.h" />\r
+ <ClInclude Include="attribute\resolver\ResolutionContext.h" />\r
+ <ClInclude Include="attribute\filtering\AttributeFilter.h" />\r
+ <ClInclude Include="attribute\filtering\BasicFilteringContext.h" />\r
+ <ClInclude Include="attribute\filtering\FilteringContext.h" />\r
+ <ClInclude Include="attribute\filtering\FilterPolicyContext.h" />\r
+ <ClInclude Include="attribute\filtering\MatchFunctor.h" />\r
+ <ClInclude Include="binding\ArtifactResolver.h" />\r
+ <ClInclude Include="binding\SOAPClient.h" />\r
+ <ClInclude Include="handler\AbstractHandler.h" />\r
+ <ClInclude Include="handler\AssertionConsumerService.h" />\r
+ <ClInclude Include="handler\Handler.h" />\r
+ <ClInclude Include="handler\LogoutHandler.h" />\r
+ <ClInclude Include="handler\RemotedHandler.h" />\r
+ <ClInclude Include="handler\SessionInitiator.h" />\r
+ <ClInclude Include="metadata\MetadataExt.h" />\r
+ <ClInclude Include="metadata\MetadataProviderCriteria.h" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibsp.rc" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ <None Include="paths.h.in" />\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup>\r
+ <Filter Include="Source Files">\r
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+ </Filter>\r
+ <Filter Include="Source Files\util">\r
+ <UniqueIdentifier>{f7a309f6-07d1-40c7-9f64-bf3fcd3b51ad}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\security">\r
+ <UniqueIdentifier>{89058d6e-5dc6-4464-89ae-4b9b0b7ca1fc}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\metadata">\r
+ <UniqueIdentifier>{48a6ad05-3636-4f2a-821a-908cd6a6f38c}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\remoting">\r
+ <UniqueIdentifier>{201f4b10-df25-487b-b345-07e3e8dcb725}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\remoting\impl">\r
+ <UniqueIdentifier>{369a0f3d-8063-437a-9562-3845d3e4b49b}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\impl">\r
+ <UniqueIdentifier>{41d82bec-c25d-4cab-a15f-754f338f7ca2}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\attribute">\r
+ <UniqueIdentifier>{d71b535e-d381-4c91-b6c8-cdf3b17d6f90}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\attribute\resolver">\r
+ <UniqueIdentifier>{60cebd87-179e-4fca-8837-13aa1900aaad}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\attribute\resolver\impl">\r
+ <UniqueIdentifier>{b329e6c6-afb7-4979-b52f-71b91ead3ffc}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\attribute\filtering">\r
+ <UniqueIdentifier>{c7ffdbc2-c0a8-4eb0-8a15-aba6f60955a7}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\attribute\filtering\impl">\r
+ <UniqueIdentifier>{23310ff9-ddd8-46cd-ad92-325166dac240}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\binding">\r
+ <UniqueIdentifier>{084ae0b6-d51e-4e60-a3f1-8341f2a5f324}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\binding\impl">\r
+ <UniqueIdentifier>{66bd1384-c499-4cb8-8079-4bf8a4adc8fc}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\handler">\r
+ <UniqueIdentifier>{cd97c469-f562-4710-a2e1-4fc30e476c18}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files\handler\impl">\r
+ <UniqueIdentifier>{9e449f86-94ac-4ec6-aa44-26effcc9c5b5}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files">\r
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+ </Filter>\r
+ <Filter Include="Header Files\util">\r
+ <UniqueIdentifier>{ec709790-2a20-4ab1-afbc-9c1a70cd1426}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\security">\r
+ <UniqueIdentifier>{6d782306-386a-4bdb-9d34-8f40afc5f5fd}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\remoting">\r
+ <UniqueIdentifier>{92a56f33-88c5-4663-b33a-47a9c66a5a02}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\attribute">\r
+ <UniqueIdentifier>{cb5ac1c9-4ec1-40ad-8caf-9f307735452c}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\attribute\resolver">\r
+ <UniqueIdentifier>{a403b7f1-6320-4000-92c1-04780c6db4e4}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\attribute\filtering">\r
+ <UniqueIdentifier>{e993fd93-ce33-4276-a3d3-663e8accf759}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\binding">\r
+ <UniqueIdentifier>{faf404c0-29a2-4a95-ba99-82bd4570e350}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\handler">\r
+ <UniqueIdentifier>{23e9fed1-5ecf-4558-9c5e-0ccf09f1f953}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Header Files\metadata">\r
+ <UniqueIdentifier>{a9cc5780-b115-430f-b156-ca4fa5276f63}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Resource Files">\r
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\r
+ </Filter>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="AbstractSPRequest.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Application.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="ServiceProvider.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="SPConfig.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\CGIParser.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\DOMPropertySet.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\SPConstants.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="util\TemplateParameters.cpp">\r
+ <Filter>Source Files\util</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="security\PKIXTrustEngine.cpp">\r
+ <Filter>Source Files\security</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="security\SecurityPolicy.cpp">\r
+ <Filter>Source Files\security</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="metadata\DynamicMetadataProvider.cpp">\r
+ <Filter>Source Files\metadata</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="metadata\MetadataExtImpl.cpp">\r
+ <Filter>Source Files\metadata</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="metadata\MetadataExtSchemaValidators.cpp">\r
+ <Filter>Source Files\metadata</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="metadata\MetadataProviderCriteria.cpp">\r
+ <Filter>Source Files\metadata</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\ddf.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\ListenerService.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\SocketListener.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="remoting\impl\TCPListener.cpp">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\ChainingAccessControl.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\StorageServiceSessionCache.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\XMLAccessControl.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\XMLRequestMapper.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="impl\XMLServiceProvider.cpp">\r
+ <Filter>Source Files\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\Attribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\DOMAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\ExtensibleAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\KeyInfoAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\NameIDAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\NameIDAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\NameIDFromScopedAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\ScopedAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\ScopedAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\SimpleAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\StringAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\XMLAttribute.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\XMLAttributeDecoder.cpp">\r
+ <Filter>Source Files\attribute</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\ChainingAttributeExtractor.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\ChainingAttributeResolver.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\DelegationAttributeExtractor.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\KeyDescriptorAttributeExtractor.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\QueryAttributeResolver.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\SimpleAggregationAttributeResolver.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\resolver\impl\XMLAttributeExtractor.cpp">\r
+ <Filter>Source Files\attribute\resolver\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AndMatchFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AnyMatchFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeFilter.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeIssuerInEntityGroupFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeIssuerRegexFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeIssuerStringFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeRequesterInEntityGroupFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeRequesterRegexFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeRequesterStringFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeScopeMatchesShibMDScopeFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeScopeRegexFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeScopeStringFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeValueRegexFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AttributeValueStringFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AuthenticationMethodRegexFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\AuthenticationMethodStringFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\BasicFilteringContext.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\ChainingAttributeFilter.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\MatchFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\NotMatchFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\NumberOfAttributeValuesFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\OrMatchFunctor.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="attribute\filtering\impl\XMLAttributeFilter.cpp">\r
+ <Filter>Source Files\attribute\filtering\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="binding\impl\ArtifactResolver.cpp">\r
+ <Filter>Source Files\binding\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="binding\impl\SOAPClient.cpp">\r
+ <Filter>Source Files\binding\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\AbstractHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\AssertionConsumerService.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\AssertionLookup.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\ChainingLogoutInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\ChainingSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\CookieSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\FormSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\LocalLogoutInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\LogoutHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\MetadataGenerator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\RemotedHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML1Consumer.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2ArtifactResolution.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2Consumer.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2Logout.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2LogoutInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2NameIDMgmt.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAML2SessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SAMLDSSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SessionHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\SessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\Shib1SessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\StatusHandler.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\TransformSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="handler\impl\WAYFSessionInitiator.cpp">\r
+ <Filter>Source Files\handler\impl</Filter>\r
+ </ClCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="remoting\impl\SocketListener.h">\r
+ <Filter>Source Files\remoting\impl</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="AbstractSPRequest.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="AccessControl.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Application.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="base.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="exceptions.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="internal.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="RequestMapper.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="resource.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="ServiceProvider.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SessionCache.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SessionCacheEx.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SPConfig.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="SPRequest.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="TransactionLog.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="version.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\CGIParser.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\DOMPropertySet.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\PropertySet.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\SPConstants.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="util\TemplateParameters.h">\r
+ <Filter>Header Files\util</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="security\PKIXTrustEngine.h">\r
+ <Filter>Header Files\security</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="security\SecurityPolicy.h">\r
+ <Filter>Header Files\security</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="remoting\ddf.h">\r
+ <Filter>Header Files\remoting</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="remoting\ListenerService.h">\r
+ <Filter>Header Files\remoting</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\Attribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\AttributeDecoder.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\ExtensibleAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\NameIDAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\ScopedAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\SimpleAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\XMLAttribute.h">\r
+ <Filter>Header Files\attribute</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\resolver\AttributeExtractor.h">\r
+ <Filter>Header Files\attribute\resolver</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\resolver\AttributeResolver.h">\r
+ <Filter>Header Files\attribute\resolver</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\resolver\ResolutionContext.h">\r
+ <Filter>Header Files\attribute\resolver</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\filtering\AttributeFilter.h">\r
+ <Filter>Header Files\attribute\filtering</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\filtering\BasicFilteringContext.h">\r
+ <Filter>Header Files\attribute\filtering</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\filtering\FilteringContext.h">\r
+ <Filter>Header Files\attribute\filtering</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\filtering\FilterPolicyContext.h">\r
+ <Filter>Header Files\attribute\filtering</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="attribute\filtering\MatchFunctor.h">\r
+ <Filter>Header Files\attribute\filtering</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="binding\ArtifactResolver.h">\r
+ <Filter>Header Files\binding</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="binding\SOAPClient.h">\r
+ <Filter>Header Files\binding</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\AbstractHandler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\AssertionConsumerService.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\Handler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\LogoutHandler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\RemotedHandler.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="handler\SessionInitiator.h">\r
+ <Filter>Header Files\handler</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="metadata\MetadataExt.h">\r
+ <Filter>Header Files\metadata</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="metadata\MetadataProviderCriteria.h">\r
+ <Filter>Header Files\metadata</Filter>\r
+ </ClInclude>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ResourceCompile Include="shibsp.rc">\r
+ <Filter>Resource Files</Filter>\r
+ </ResourceCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <None Include="Makefile.am" />\r
+ <None Include="paths.h.in" />\r
+ </ItemGroup>\r
+</Project>
\ No newline at end of file
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* CGIParser.cpp
*
- * CGI GET/POST parameter parsing
+ * CGI GET/POST parameter parsing.
*/
#include "internal.h"
CGIParser::CGIParser(const HTTPRequest& request)
{
- const char* pch=NULL;
+ const char* pch=nullptr;
if (!strcmp(request.getMethod(),"POST"))
pch=request.getRequestBody();
else
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* @file shibsp/util/CGIParser.h
*
- * CGI GET/POST parameter parsing
+ * CGI GET/POST parameter parsing.
*/
#ifndef __shibsp_cgi_h__
/**
* Returns a pair of bounded iterators around the values of a parameter.
*
- * @param name name of parameter, or NULL to return all parameters
+ * @param name name of parameter, or nullptr to return all parameters
* @return a pair of multimap iterators surrounding the matching value(s)
*/
std::pair<walker,walker> getParameters(const char* name) const;
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
{
}
-DOMPropertySet::DOMPropertySet() : m_parent(NULL), m_root(NULL)
+DOMPropertySet::DOMPropertySet() : m_parent(nullptr), m_root(nullptr)
{
}
pair<bool,const char*> DOMPropertySet::getString(const char* name, const char* ns) const
{
- pair<bool,const char*> ret(false,NULL);
+ pair<bool,const char*> ret(false,nullptr);
map<string,pair<char*,const XMLCh*> >::const_iterator i;
if (ns)
return pair<bool,const char*>(true,i->second.first);
else if (m_parent)
return m_parent->getString(name,ns);
- return pair<bool,const char*>(false,NULL);
+ return pair<bool,const char*>(false,nullptr);
}
pair<bool,const XMLCh*> DOMPropertySet::getXMLString(const char* name, const char* ns) const
return make_pair(true,i->second.second);
else if (m_parent)
return m_parent->getXMLString(name,ns);
- return pair<bool,const XMLCh*>(false,NULL);
+ return pair<bool,const XMLCh*>(false,nullptr);
}
pair<bool,unsigned int> DOMPropertySet::getUnsignedInt(const char* name, const char* ns) const
i=m_map.find(name);
if (i!=m_map.end())
- return pair<bool,unsigned int>(true,strtol(i->second.first,NULL,10));
+ return pair<bool,unsigned int>(true,strtol(i->second.first,nullptr,10));
else if (m_parent)
return m_parent->getUnsignedInt(name,ns);
return pair<bool,unsigned int>(false,0);
else
i=m_nested.find(name);
- return (i!=m_nested.end()) ? i->second : (m_parent ? m_parent->getPropertySet(name,ns) : NULL);
+ return (i!=m_nested.end()) ? i->second : (m_parent ? m_parent->getPropertySet(name,ns) : nullptr);
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const PropertySet* getParent() const;
void setParent(const PropertySet* parent);
- std::pair<bool,bool> getBool(const char* name, const char* ns=NULL) const;
- std::pair<bool,const char*> getString(const char* name, const char* ns=NULL) const;
- std::pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=NULL) const;
- std::pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=NULL) const;
- std::pair<bool,int> getInt(const char* name, const char* ns=NULL) const;
+ std::pair<bool,bool> getBool(const char* name, const char* ns=nullptr) const;
+ std::pair<bool,const char*> getString(const char* name, const char* ns=nullptr) const;
+ std::pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=nullptr) const;
+ std::pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=nullptr) const;
+ std::pair<bool,int> getInt(const char* name, const char* ns=nullptr) const;
void getAll(std::map<std::string,const char*>& properties) const;
const PropertySet* getPropertySet(const char* name, const char* ns=shibspconstants::ASCII_SHIB2SPCONFIG_NS) const;
const xercesc::DOMElement* getElement() const;
*/
void load(
const xercesc::DOMElement* e,
- xmltooling::logging::Category* log=NULL,
- xercesc::DOMNodeFilter* filter=NULL,
- const std::map<std::string,std::string>* remapper=NULL
+ xmltooling::logging::Category* log=nullptr,
+ xercesc::DOMNodeFilter* filter=nullptr,
+ const std::map<std::string,std::string>* remapper=nullptr
);
private:
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* Returns parent of this PropertySet, if any.
*
- * @return the parent object, or NULL
+ * @return the parent object, or nullptr
*/
virtual const PropertySet* getParent() const=0;
* Returns a boolean-valued property.
*
* @param name property name
- * @param ns property namespace, or NULL
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @param ns property namespace, or nullptr
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
- virtual std::pair<bool,bool> getBool(const char* name, const char* ns=NULL) const=0;
+ virtual std::pair<bool,bool> getBool(const char* name, const char* ns=nullptr) const=0;
/**
* Returns a string-valued property.
*
* @param name property name
- * @param ns property namespace, or NULL
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @param ns property namespace, or nullptr
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
- virtual std::pair<bool,const char*> getString(const char* name, const char* ns=NULL) const=0;
+ virtual std::pair<bool,const char*> getString(const char* name, const char* ns=nullptr) const=0;
/**
* Returns a Unicode string-valued property.
*
* @param name property name
- * @param ns property namespace, or NULL
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @param ns property namespace, or nullptr
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
- virtual std::pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=NULL) const=0;
+ virtual std::pair<bool,const XMLCh*> getXMLString(const char* name, const char* ns=nullptr) const=0;
/**
* Returns an unsigned integer-valued property.
*
* @param name property name
- * @param ns property namespace, or NULL
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @param ns property namespace, or nullptr
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
- virtual std::pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=NULL) const=0;
+ virtual std::pair<bool,unsigned int> getUnsignedInt(const char* name, const char* ns=nullptr) const=0;
/**
* Returns an integer-valued property.
*
* @param name property name
- * @param ns property namespace, or NULL
- * @return a pair consisting of a NULL indicator and the property value iff the indicator is true
+ * @param ns property namespace, or nullptr
+ * @return a pair consisting of a nullptr indicator and the property value iff the indicator is true
*/
- virtual std::pair<bool,int> getInt(const char* name, const char* ns=NULL) const=0;
+ virtual std::pair<bool,int> getInt(const char* name, const char* ns=nullptr) const=0;
/**
* Returns a map of all known properties in string form.
* Returns a nested property set.
*
* @param name nested property set name
- * @param ns nested property set namespace, or NULL
- * @return the nested property set, or NULL
+ * @param ns nested property set namespace, or nullptr
+ * @return the nested property set, or nullptr
*/
virtual const PropertySet* getPropertySet(const char* name, const char* ns=shibspconstants::ASCII_SHIB2SPCONFIG_NS) const=0;
/**
* Returns a DOM element representing the property container, if any.
*
- * @return a DOM element, or NULL
+ * @return a DOM element, or nullptr
*/
virtual const xercesc::DOMElement* getElement() const=0;
};
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
m_props = props;
// Create a timestamp.
- time_t now = time(NULL);
+ time_t now = time(nullptr);
#if defined(HAVE_CTIME_R_2)
char timebuf[32];
m_map["now"] = ctime_r(&now,timebuf);
if (pch || !m_props)
return pch;
pair<bool,const char*> p = m_props->getString(name);
- return p.first ? p.second : NULL;
+ return p.first ? p.second : nullptr;
}
string TemplateParameters::toQueryString() const
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param e an exception to supply additional parameters
* @param props a PropertySet to supply additional parameters
*/
- TemplateParameters(const std::exception* e=NULL, const PropertySet* props=NULL);
+ TemplateParameters(const std::exception* e=nullptr, const PropertySet* props=nullptr);
virtual ~TemplateParameters();
/**
* Returns the exception passed to the object, if it contains rich information.
*
- * @return an exception, or NULL
+ * @return an exception, or nullptr
*/
const xmltooling::XMLToolingException* getRichException() const;
mdquery_LDFLAGS = $(XMLSEC_LIBS)
-EXTRA_DIST = mdquery.vcproj resolvertest.vcproj
+EXTRA_DIST = mdquery.vcxproj resolvertest.vcxproj
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* mdquery.cpp
*
- * SAML Metadata Query tool layered on SP configuration
+ * SAML Metadata Query tool layered on SP configuration.
*/
#if defined (_MSC_VER) || defined(__BORLANDC__)
int main(int argc,char* argv[])
{
- char* entityID = NULL;
+ char* entityID = nullptr;
char* appID = "default";
bool strict = true;
- char* prot = NULL;
- const XMLCh* protocol = NULL;
- char* rname = NULL;
- char* rns = NULL;
+ char* prot = nullptr;
+ const XMLCh* protocol = nullptr;
+ char* rname = nullptr;
+ char* rns = nullptr;
for (int i=1; i<argc; i++) {
if (!strcmp(argv[i],"-e") && i+1<argc)
}
app->getMetadataProvider()->lock();
- MetadataProviderCriteria mc(*app, entityID, NULL, NULL, strict);
+ MetadataProviderCriteria mc(*app, entityID, nullptr, nullptr, strict);
if (rname) {
const XMLCh* ns = rns ? XMLString::transcode(rns) : samlconstants::SAML20MD_NS;
auto_ptr_XMLCh n(rname);
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{F13141B6-6C87-40BB-8D4E-5CC56EBB4C5A}</ProjectGuid>\r
+ <RootNamespace>mdquery</RootNamespace>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;saml2.lib;xmltooling1.lib;xerces-c_3.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;saml2.lib;xmltooling1.lib;xerces-c_3.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;saml2D.lib;xmltooling1D.lib;xerces-c_3D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;saml2D.lib;xmltooling1D.lib;xerces-c_3D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="mdquery.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f6}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
int main(int argc,char* argv[])
{
- char* a_param=NULL;
- char* n_param=NULL;
- char* f_param=NULL;
- char* i_param=NULL;
- char* prot = NULL;
- const XMLCh* protocol = NULL;
+ char* a_param=nullptr;
+ char* n_param=nullptr;
+ char* f_param=nullptr;
+ char* i_param=nullptr;
+ char* prot = nullptr;
+ const XMLCh* protocol = nullptr;
for (int i=1; i<argc; i++) {
if (!strcmp(argv[i],"-n") && i+1<argc)
auto_ptr<saml2::NameID> v2name(saml2::NameIDBuilder::buildNameID());
v2name->setName(name.get());
v2name->setFormat(format.get());
- saml1::NameIdentifier* v1name = NULL;
+ saml1::NameIdentifier* v1name = nullptr;
if (!XMLString::equals(protocol, samlconstants::SAML20P_NS)) {
v1name = saml1::NameIdentifierBuilder::buildNameIdentifier();
v1name->setName(name.get());
v1name->setNameQualifier(issuer.get());
}
- ResolverTest rt(NULL, a_param);
+ ResolverTest rt(nullptr, a_param);
try {
- ctx = rt.resolveAttributes(*app, site.second, protocol, v1name, v2name.get(), NULL, NULL, NULL);
+ ctx = rt.resolveAttributes(*app, site.second, protocol, v1name, v2name.get(), nullptr, nullptr, nullptr);
}
catch (...) {
delete v1name;
docjan.release();
// Get the issuer and protocol and NameIDs.
- const XMLCh* issuer = NULL;
- const saml1::NameIdentifier* v1name = NULL;
- saml2::NameID* v2name = NULL;
+ const XMLCh* issuer = nullptr;
+ const saml1::NameIdentifier* v1name = nullptr;
+ saml2::NameID* v2name = nullptr;
saml2::Assertion* a2 = dynamic_cast<saml2::Assertion*>(token.get());
saml1::Assertion* a1 = dynamic_cast<saml1::Assertion*>(token.get());
if (a2) {
const saml2::Issuer* iss = a2->getIssuer();
- issuer = iss ? iss->getName() : NULL;
+ issuer = iss ? iss->getName() : nullptr;
protocol = samlconstants::SAML20P_NS;
- v2name = a2->getSubject() ? a2->getSubject()->getNameID() : NULL;
+ v2name = a2->getSubject() ? a2->getSubject()->getNameID() : nullptr;
}
else if (a1) {
issuer = a1->getIssuer();
else
protocol = samlconstants::SAML11_PROTOCOL_ENUM;
v1name = a1->getAuthenticationStatements().size() ?
- a1->getAuthenticationStatements().front()->getSubject()->getNameIdentifier() : NULL;
+ a1->getAuthenticationStatements().front()->getSubject()->getNameIdentifier() : nullptr;
if (!v1name)
v1name = a1->getAttributeStatements().size() ?
- a1->getAttributeStatements().front()->getSubject()->getNameIdentifier() : NULL;
+ a1->getAttributeStatements().front()->getSubject()->getNameIdentifier() : nullptr;
if (v1name) {
// Normalize the SAML 1.x NameIdentifier...
v2name = saml2::NameIDBuilder::buildNameID();
throw FatalProfileException("Unknown assertion type.");
}
- auto_ptr<saml2::NameID> nameidwrapper(v1name ? v2name : NULL);
+ auto_ptr<saml2::NameID> nameidwrapper(v1name ? v2name : nullptr);
if (!issuer)
throw FatalProfileException("Unable to determine issuer.");
}
vector<const Assertion*> tokens(1, dynamic_cast<Assertion*>(token.get()));
- ResolverTest rt(NULL, a_param);
- ctx = rt.resolveAttributes(*app, site.second, protocol, v1name, v2name, NULL, NULL, &tokens);
+ ResolverTest rt(nullptr, a_param);
+ ctx = rt.resolveAttributes(*app, site.second, protocol, v1name, v2name, nullptr, nullptr, &tokens);
}
auto_ptr<ResolutionContext> wrapper(ctx);
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{F13141B6-6C87-40BB-8D4E-5CC56EBB4C59}</ProjectGuid>\r
+ <RootNamespace>resolvertest</RootNamespace>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>\r
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Midl>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;saml2.lib;xmltooling1.lib;xerces-c_3.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1.lib;saml2.lib;xmltooling1.lib;xerces-c_3.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Midl>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;saml2D.lib;xmltooling1D.lib;xerces-c_3D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Configuration);..\..\cpp-xmltooling\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ <HeaderFileName>\r
+ </HeaderFileName>\r
+ </Midl>\r
+ <ClCompile>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>.;..;..\..\cpp-opensaml2;..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+ <BrowseInformation>true</BrowseInformation>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <Link>\r
+ <AdditionalDependencies>log4shib1D.lib;saml2D.lib;xmltooling1D.lib;xerces-c_3D.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>..\..\cpp-opensaml2\$(Platform)\$(Configuration);..\..\cpp-xmltooling\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <SubSystem>Console</SubSystem>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="resolvertest.cpp" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\shibsp\shibsp.vcxproj">\r
+ <Project>{81f0f7a6-dc36-46ef-957f-f9e81d4403f6}</Project>\r
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file