/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xmltooling-lite1D.lib"\r
+ AdditionalDependencies="log4shib1D.lib xerces-c_2D.lib xmltooling-lite1D.lib"\r
OutputFile="$(OutDir)\$(ProjectName).so"\r
LinkIncremental="2"\r
AdditionalLibraryDirectories="..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xmltooling-lite1.lib"\r
+ AdditionalDependencies="log4shib1.lib xerces-c_2.lib xmltooling-lite1.lib"\r
OutputFile="$(OutDir)\$(ProjectName).so"\r
LinkIncremental="1"\r
AdditionalLibraryDirectories="..\..\cpp-xmltooling\$(ConfigurationName)"\r
#include <shibsp/handler/AssertionConsumerService.h>
#include <shibsp/handler/LogoutHandler.h>
#include <shibsp/handler/SessionInitiator.h>
+#include <xmltooling/logging.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/URLEncoder.h>
#include <xmltooling/util/XMLHelper.h>
-#include <log4cpp/Category.hh>
#include <xercesc/util/XMLUniDefs.hpp>
#ifndef SHIBSP_LITE
#endif
using namespace shibsp;
using namespace opensaml;
+using namespace xmltooling::logging;
using namespace xmltooling;
using namespace xercesc;
-using namespace log4cpp;
using namespace std;
#define WSFED_NS "http://schemas.xmlsoap.org/ws/2003/07/secext"
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib saml2D.lib xmltooling1D.lib"\r
+ AdditionalDependencies="log4shib1D.lib xerces-c_2D.lib saml2D.lib xmltooling1D.lib"\r
OutputFile="$(OutDir)\$(ProjectName).so"\r
LinkIncremental="2"\r
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib saml2.lib xmltooling1.lib"\r
+ AdditionalDependencies="log4shib1.lib xerces-c_2.lib saml2.lib xmltooling1.lib"\r
OutputFile="$(OutDir)\$(ProjectName).so"\r
LinkIncremental="1"\r
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"\r
return false;
}
-#ifndef SHIB_APACHE_13
-/*
- * shib_exit()
- * Empty cleanup hook, Apache 2.x doesn't check NULL very well...
- */
-extern "C" apr_status_t shib_exit(void* data)
-{
- if (g_Config) {
- g_Config->term();
- g_Config = NULL;
- }
- ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,NULL,"shib_exit() done");
- return OK;
-}
-#endif
-
// Initial look at a request - create the per-request structure
static int shib_post_read(request_rec *r)
return OK;
}
+#ifdef SHIB_APACHE_13
/*
* shib_child_exit()
* Cleanup the (per-process) pool info.
*/
-#ifdef SHIB_APACHE_13
extern "C" void shib_child_exit(server_rec* s, SH_AP_POOL* p)
{
-#else
-extern "C" apr_status_t shib_child_exit(void* data)
-{
- server_rec* s = NULL;
-#endif
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;
ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_exit() done");
}
-
-#ifndef SHIB_APACHE_13
+}
+#else
+/*
+ * shib_exit()
+ * Apache 2.x doesn't allow for per-child cleanup, causes CGI forks to hang.
+ */
+extern "C" apr_status_t shib_exit(void* data)
+{
+ if (g_Config) {
+ g_Config->term();
+ g_Config = NULL;
+ }
+ ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,NULL,"shib_exit() done");
return OK;
-#endif
}
+#endif
/*
* shire_child_init()
}
// Set the cleanup handler
- apr_pool_cleanup_register(p, NULL, &shib_exit, &shib_child_exit);
+ apr_pool_cleanup_register(p, NULL, &shib_exit, apr_pool_cleanup_null);
ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() done");
}
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib ApacheCore.lib xmltooling-lite1.lib"
+ AdditionalDependencies="xerces-c_2.lib ApacheCore.lib xmltooling-lite1.lib"
OutputFile="$(OutDir)\mod_shib_13.so"
LinkIncremental="1"
SuppressStartupBanner="true"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib ApacheCore.lib xmltooling-lite1D.lib"
+ AdditionalDependencies="xerces-c_2D.lib ApacheCore.lib xmltooling-lite1D.lib"
OutputFile="$(OutDir)\mod_shib_13.so"
LinkIncremental="2"
SuppressStartupBanner="true"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib libapr.lib libaprutil.lib libhttpd.lib xmltooling-lite1.lib"
+ AdditionalDependencies="xerces-c_2.lib libapr.lib libaprutil.lib libhttpd.lib xmltooling-lite1.lib"
OutputFile="$(OutDir)\mod_shib_20.so"
LinkIncremental="1"
SuppressStartupBanner="true"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib libapr.lib libaprutil.lib libhttpd.lib xmltooling-lite1D.lib"
+ AdditionalDependencies="xerces-c_2D.lib libapr.lib libaprutil.lib libhttpd.lib xmltooling-lite1D.lib"
OutputFile="$(OutDir)\mod_shib_20.so"
LinkIncremental="2"
SuppressStartupBanner="true"
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xmltooling-lite1.lib libapr-1.lib libaprutil-1.lib libhttpd.lib"\r
+ AdditionalDependencies="xerces-c_2.lib xmltooling-lite1.lib libapr-1.lib libaprutil-1.lib libhttpd.lib"\r
OutputFile="$(OutDir)\mod_shib_22.so"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xmltooling-lite1D.lib libapr-1.lib libaprutil-1.lib libhttpd.lib"\r
+ AdditionalDependencies="xerces-c_2D.lib xmltooling-lite1D.lib libapr-1.lib libaprutil-1.lib libhttpd.lib"\r
OutputFile="$(OutDir)\mod_shib_22.so"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
/* Define to 1 if you have the `dmallocxx' library (-ldmallocxx). */
/* #undef HAVE_LIBDMALLOCXX */
-/* Define if log4cpp library was found */
-#define HAVE_LIBLOG4CPP 1
+/* Define if log4shib library is used. */
+#define SHIBSP_LOG4SHIB 1
+
+/* Define if log4cpp library is used. */
+/* #undef SHIBSP_LOG4CPP */
/* Define to 1 if you have the `ssl' library (-lssl). */
#define HAVE_LIBSSL 1
AC_CXX_REQUIRE_STL
AC_CXX_NAMESPACES
-# log4cpp settings
-AC_PATH_PROG(LOG4CPP_CONFIG,log4cpp-config)
-AC_ARG_WITH(log4cpp,
- AC_HELP_STRING([--with-log4cpp=PATH], [where log4cpp is installed]),
- [LOG4CPP_CONFIG="${with_log4cpp}/bin/log4cpp-config"])
-if test -f "${LOG4CPP_CONFIG}"; then
- LDFLAGS="`${LOG4CPP_CONFIG} --libs` $LDFLAGS"
- CPPFLAGS="`${LOG4CPP_CONFIG} --cflags` $CPPFLAGS"
+# log4shib settings (favor this version over the log4cpp code)
+AC_PATH_PROG(LOG4SHIB_CONFIG,log4shib-config)
+AC_ARG_WITH(log4shib,
+ AC_HELP_STRING([--with-log4shib=PATH], [where log4shib-config is installed]),
+ [
+ LOG4SHIB_CONFIG="${with_log4shib}"
+ if ! test -f "${LOG4SHIB_CONFIG}" ; then
+ LOG4SHIB_CONFIG="${with_log4shib}/bin/log4shib-config"
+ fi
+ ])
+if test -f "${LOG4SHIB_CONFIG}"; then
+ LDFLAGS="`${LOG4SHIB_CONFIG} --libs` $LDFLAGS"
+ CPPFLAGS="`${LOG4SHIB_CONFIG} --cflags` $CPPFLAGS"
else
- AC_MSG_WARN([log4cpp-config not found, guessing at log4cpp build settings])
- LIBS="-llog4cpp $LIBS"
+ AC_MSG_WARN([log4shib-config not found, may need to use --with-log4shib option])
+ AC_MSG_WARN([will look for original log4cpp library])
+
+ # log4cpp settings
+ AC_PATH_PROG(LOG4CPP_CONFIG,log4cpp-config)
+ AC_ARG_WITH(log4cpp,
+ AC_HELP_STRING([--with-log4cpp=PATH], [where log4cpp-config is installed]),
+ [
+ LOG4CPP_CONFIG="${with_log4cpp}"
+ if ! test -f "${LOG4CPP_CONFIG}" ; then
+ LOG4CPP_CONFIG="${with_log4cpp}/bin/log4cpp-config"
+ fi
+ ])
+ if test -f "${LOG4CPP_CONFIG}"; then
+ AC_MSG_WARN([will try to use log4cpp, note that most non-Internet2 supplied versions are not thread-safe])
+ LDFLAGS="`${LOG4CPP_CONFIG} --libs` $LDFLAGS"
+ CPPFLAGS="`${LOG4CPP_CONFIG} --cflags` $CPPFLAGS"
+ else
+ AC_MSG_ERROR([log4cpp-config not found, may need to use --with-log4cpp option])
+ fi
+ AC_CHECK_HEADER([log4cpp/Category.hh],,AC_MSG_ERROR([unable to find log4cpp header files]))
+ AC_CHECK_HEADER([log4cpp/PropertyConfigurator.hh],,AC_MSG_ERROR([you need at least log4cpp 0.3.x]))
+ AC_TRY_LINK(
+ [#include <log4cpp/Category.hh>],
+ [log4cpp::Category::getInstance("foo")],
+ [AC_DEFINE(SHIBSP_LOG4CPP,1,[Define if log4cpp library is used.])],
+ [AC_MSG_ERROR([unable to link with log4cpp])])
fi
-AC_CHECK_HEADER([log4cpp/Category.hh],,AC_MSG_ERROR([unable to find log4cpp header files]))
+AC_CHECK_HEADER([log4shib/Category.hh],,AC_MSG_ERROR([unable to find log4shib header files]))
AC_TRY_LINK(
- [#include <log4cpp/Category.hh>],
- [log4cpp::Category::getInstance("foo")],
- [AC_DEFINE(HAVE_LIBLOG4CPP,1,[Define if log4cpp library was found])],
- [AC_MSG_ERROR([unable to link with log4cpp])])
+ [#include <log4shib/Category.hh>],
+ [log4shib::Category::getInstance("foo")],
+ [AC_DEFINE(SHIBSP_LOG4SHIB,1,[Define if log4shib library is used.])],
+ [AC_MSG_ERROR([unable to link with log4shib])])
+
# Xerces settings
AC_ARG_WITH(xerces,
<Tool
Name="VCLinkerTool"
AdditionalOptions="/export:GetExtensionVersion /export:GetFilterVersion /export:TerminateExtension /export:TerminateFilter /export:HttpFilterProc /export:HttpExtensionProc"
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xmltooling-lite1.lib"
+ AdditionalDependencies="xerces-c_2.lib xmltooling-lite1.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""..\..\cpp-xmltooling\$(ConfigurationName)""
<Tool
Name="VCLinkerTool"
AdditionalOptions="/export:GetExtensionVersion /export:GetFilterVersion /export:TerminateExtension /export:TerminateFilter /export:HttpFilterProc /export:HttpExtensionProc"
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xmltooling-lite1D.lib"
+ AdditionalDependencies="xerces-c_2D.lib xmltooling-lite1D.lib"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""..\..\cpp-xmltooling\$(ConfigurationName)""
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xmltooling-lite1.lib ns-httpd30.lib"
+ AdditionalDependencies="xerces-c_2.lib xmltooling-lite1.lib ns-httpd30.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""..\..\cpp-xmltooling\$(ConfigurationName)""
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xmltooling-lite1D.lib ns-httpd30.lib"
+ AdditionalDependencies="xerces-c_2D.lib xmltooling-lite1D.lib ns-httpd30.lib"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""..\..\cpp-xmltooling\$(ConfigurationName)""
# define ODBCSTORE_EXPORTS
#endif
-#include <log4cpp/Category.hh>
#include <xercesc/util/XMLUniDefs.hpp>
+#include <xmltooling/logging.h>
#include <xmltooling/XMLToolingConfig.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/StorageService.h>
#include <sql.h>
#include <sqlext.h>
+using namespace xmltooling::logging;
using namespace xmltooling;
using namespace xercesc;
-using namespace log4cpp;
using namespace std;
#define PLUGIN_VER_MAJOR 1
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xmltooling1D.lib"\r
+ AdditionalDependencies="log4shib1D.lib xerces-c_2D.lib xmltooling1D.lib"\r
OutputFile="$(OutDir)\$(ProjectName).so"\r
LinkIncremental="2"\r
AdditionalLibraryDirectories="..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xmltooling1.lib"\r
+ AdditionalDependencies="log4shib1.lib xerces-c_2.lib xmltooling1.lib"\r
OutputFile="$(OutDir)\$(ProjectName).so"\r
LinkIncremental="1"\r
AdditionalLibraryDirectories="..\..\cpp-xmltooling\$(ConfigurationName)"\r
\r
#include <stdio.h>\r
#include <signal.h>\r
-#include <log4cpp/Category.hh>\r
#include <shibsp/ServiceProvider.h>\r
#include <shibsp/remoting/ListenerService.h>\r
#include <xercesc/util/XMLUniDefs.hpp>\r
#include <xmltooling/util/XMLHelper.h>\r
\r
using namespace shibsp;\r
-using namespace log4cpp;\r
using namespace xmltooling;\r
using namespace std;\r
\r
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="wsock32.lib log4cpp.lib xmltooling1.lib xerces-c_2.lib"
+ AdditionalDependencies="wsock32.lib log4shib1.lib xmltooling1.lib xerces-c_2.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="wsock32.lib log4cppD.lib xmltooling1D.lib"
+ AdditionalDependencies="wsock32.lib log4shib1D.lib xmltooling1D.lib"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"
#include "ServiceProvider.h"
#include "SessionCache.h"
-#include <log4cpp/Category.hh>
-
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
AbstractSPRequest::AbstractSPRequest()
void AbstractSPRequest::log(SPLogLevel level, const std::string& msg) const
{
reinterpret_cast<Category*>(m_log)->log(
- (level == SPDebug ? log4cpp::Priority::DEBUG :
- (level == SPInfo ? log4cpp::Priority::INFO :
- (level == SPWarn ? log4cpp::Priority::WARN :
- (level == SPError ? log4cpp::Priority::ERROR : log4cpp::Priority::CRIT)))),
+ (level == SPDebug ? Priority::DEBUG :
+ (level == SPInfo ? Priority::INFO :
+ (level == SPWarn ? Priority::WARN :
+ (level == SPError ? Priority::ERROR : Priority::CRIT)))),
msg
);
}
bool AbstractSPRequest::isPriorityEnabled(SPLogLevel level) const
{
return reinterpret_cast<Category*>(m_log)->isPriorityEnabled(
- (level == SPDebug ? log4cpp::Priority::DEBUG :
- (level == SPInfo ? log4cpp::Priority::INFO :
- (level == SPWarn ? log4cpp::Priority::WARN :
- (level == SPError ? log4cpp::Priority::ERROR : log4cpp::Priority::CRIT))))
+ (level == SPDebug ? Priority::DEBUG :
+ (level == SPInfo ? Priority::INFO :
+ (level == SPWarn ? Priority::WARN :
+ (level == SPError ? Priority::ERROR : Priority::CRIT))))
);
}
*/
#include "internal.h"
+
+#if defined(XMLTOOLING_LOG4SHIB)
+# ifndef SHIBSP_LOG4SHIB
+# error "Logging library mismatch (XMLTooling is using log4shib)."
+# endif
+#elif defined(XMLTOOLING_LOG4CPP)
+# ifndef SHIBSP_LOG4CPP
+# error "Logging library mismatch (XMLTooling is using log4cpp)."
+# endif
+#else
+# error "No supported logging library."
+#endif
+
#include "AccessControl.h"
#include "exceptions.h"
#include "RequestMapper.h"
# include <xmltooling/XMLToolingConfig.h>
#endif
-#include <log4cpp/Category.hh>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/TemplateEngine.h>
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
DECL_XMLTOOLING_EXCEPTION_FACTORY(AttributeException,shibsp);
DECL_XMLTOOLING_EXCEPTION_FACTORY(AttributeExtractionException,shibsp);
#define __shibsp_txlog_h__
#include <shibsp/base.h>
-#include <log4cpp/Category.hh>
+#include <xmltooling/logging.h>
#include <xmltooling/Lockable.h>
#include <xmltooling/util/Threads.h>
MAKE_NONCOPYABLE(TransactionLog);
public:
TransactionLog()
- : log(log4cpp::Category::getInstance(SHIBSP_TX_LOGCAT)), m_lock(xmltooling::Mutex::create()) {
+ : log(xmltooling::logging::Category::getInstance(SHIBSP_TX_LOGCAT)), m_lock(xmltooling::Mutex::create()) {
}
virtual ~TransactionLog() {
}
/** Logging object. */
- log4cpp::Category& log;
+ xmltooling::logging::Category& log;
private:
xmltooling::Mutex* m_lock;
#include "attribute/AttributeDecoder.h"\r
#include "attribute/NameIDAttribute.h"\r
\r
-#include <log4cpp/Category.hh>\r
#include <saml/saml1/core/Assertions.h>\r
#include <saml/saml2/core/Assertions.h>\r
\r
using namespace opensaml::saml1;\r
using namespace opensaml::saml2;\r
using namespace xmltooling;\r
-using namespace log4cpp;\r
using namespace std;\r
\r
namespace shibsp {\r
#include "attribute/AttributeDecoder.h"\r
#include "attribute/ScopedAttribute.h"\r
\r
-#include <log4cpp/Category.hh>\r
#include <saml/saml1/core/Assertions.h>\r
#include <saml/saml2/core/Assertions.h>\r
\r
using namespace opensaml::saml1;\r
using namespace opensaml::saml2;\r
using namespace xmltooling;\r
-using namespace log4cpp;\r
using namespace std;\r
\r
namespace shibsp {\r
#include "attribute/AttributeDecoder.h"\r
#include "attribute/SimpleAttribute.h"\r
\r
-#include <log4cpp/Category.hh>\r
#include <saml/saml1/core/Assertions.h>\r
#include <saml/saml2/core/Assertions.h>\r
\r
using namespace opensaml::saml1;\r
using namespace opensaml::saml2;\r
using namespace xmltooling;\r
-using namespace log4cpp;\r
using namespace std;\r
\r
namespace shibsp {\r
#include "attribute/filtering/AttributeFilter.h"
#include "attribute/filtering/FilteringContext.h"
-#include <log4cpp/Category.hh>
#include <xercesc/util/XMLUniDefs.hpp>
#include <xmltooling/util/XMLHelper.h>
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
#include "attribute/resolver/AttributeResolver.h"
#include "attribute/resolver/ResolutionContext.h"
-#include <log4cpp/Category.hh>
#include <xercesc/util/XMLUniDefs.hpp>
#include <xmltooling/util/XMLHelper.h>
using namespace opensaml::saml2;
using namespace opensaml::saml2md;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
#include "binding/SOAPClient.h"
#include "util/SPConstants.h"
-#include <log4cpp/Category.hh>
#include <saml/exceptions.h>
#include <saml/binding/SecurityPolicy.h>
#include <saml/saml1/binding/SAML1SOAPClient.h>
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
using saml1::NameIdentifier;
using saml2::NameID;
#include <saml/saml2/metadata/MetadataCredentialCriteria.h>
#include <saml/util/SAMLConstants.h>
-#include <log4cpp/Category.hh>
-
using namespace shibsp;
using namespace opensaml::saml1p;
using namespace opensaml::saml2;
using namespace opensaml::saml2p;
using namespace opensaml::saml2md;
using namespace opensaml;
-using namespace log4cpp;
using namespace xmltooling;
using namespace std;
MetadataCredentialCriteria mcc(idpDescriptor);
shibsp::SOAPClient soaper(dynamic_cast<shibsp::SecurityPolicy&>(policy));
+ bool foundEndpoint = false;
auto_ptr_XMLCh binding(samlconstants::SAML1_BINDING_SOAP);
saml1p::Response* response=NULL;
const vector<ArtifactResolutionService*>& endpoints=idpDescriptor.getArtifactResolutionServices();
try {
if (!XMLString::equals((*ep)->getBinding(),binding.get()))
continue;
+ foundEndpoint = true;
auto_ptr_char loc((*ep)->getLocation());
saml1p::Request* request = saml1p::RequestBuilder::buildRequest();
request->setMinorVersion(idpDescriptor.hasSupport(samlconstants::SAML11_PROTOCOL_ENUM) ? 1 : 0);
}
}
- if (!response)
+ if (!foundEndpoint)
+ 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 QName* code = (response->getStatus() && response->getStatus()->getStatusCode()) ? response->getStatus()->getStatusCode()->getValue() : NULL;
if (!code || *code != saml1p::StatusCode::SUCCESS) {
shibsp::SecurityPolicy& sppolicy = dynamic_cast<shibsp::SecurityPolicy&>(policy);
shibsp::SOAPClient soaper(sppolicy);
+ bool foundEndpoint = false;
auto_ptr_XMLCh binding(samlconstants::SAML20_BINDING_SOAP);
ArtifactResponse* response=NULL;
const vector<ArtifactResolutionService*>& endpoints=ssoDescriptor.getArtifactResolutionServices();
try {
if (!XMLString::equals((*ep)->getBinding(),binding.get()))
continue;
+ foundEndpoint = true;
auto_ptr_char loc((*ep)->getLocation());
auto_ptr_XMLCh issuer(sppolicy.getApplication().getString("entityID").second);
ArtifactResolve* request = ArtifactResolveBuilder::buildArtifactResolve();
}
}
- if (!response)
+ if (!foundEndpoint)
+ throw MetadataException("No compatible endpoint found in issuer's metadata.");
+ else if (!response)
throw BindingException("Unable to resolve artifact(s) into a SAML response.");
- if (!response->getStatus() || !response->getStatus()->getStatusCode() ||
+ else if (!response->getStatus() || !response->getStatus()->getStatusCode() ||
!XMLString::equals(response->getStatus()->getStatusCode()->getValue(), saml2p::StatusCode::SUCCESS)) {
delete response;
throw BindingException("Identity provider returned a SAML error in response to artifact.");
#include "ServiceProvider.h"
#include "binding/SOAPClient.h"
-#include <log4cpp/Category.hh>
#include <saml/saml2/metadata/Metadata.h>
#include <xmltooling/soap/SOAP.h>
#include <xmltooling/soap/HTTPSOAPTransport.h>
using namespace opensaml::saml2md;
using namespace xmlsignature;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
SOAPClient::SOAPClient(SecurityPolicy& policy)
#include <shibsp/handler/Handler.h>
#include <shibsp/util/DOMPropertySet.h>
-#include <log4cpp/Category.hh>
#ifndef SHIBSP_LITE
# include <saml/binding/MessageEncoder.h>
# include <saml/saml2/core/Protocols.h>
#endif
+#include <xmltooling/logging.h>
#include <xmltooling/XMLObject.h>
#include <xmltooling/io/HTTPRequest.h>
#include <xmltooling/io/HTTPResponse.h>
*/
AbstractHandler(
const xercesc::DOMElement* e,
- log4cpp::Category& log,
+ xmltooling::logging::Category& log,
xercesc::DOMNodeFilter* filter=NULL,
const std::map<std::string,std::string>* remapper=NULL
);
) const;
/** Logging object. */
- log4cpp::Category& m_log;
+ xmltooling::logging::Category& m_log;
/** Configuration namespace for custom properties. */
xmltooling::auto_ptr_char m_configNS;
* @param appId ID of application that "owns" the handler
* @param log a logging object to use
*/
- AssertionConsumerService(const xercesc::DOMElement* e, const char* appId, log4cpp::Category& log);
+ AssertionConsumerService(const xercesc::DOMElement* e, const char* appId, xmltooling::logging::Category& log);
#ifndef SHIBSP_LITE
/**
using namespace samlconstants;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace xercesc;
using namespace std;
}
AbstractHandler::AbstractHandler(
- const DOMElement* e, log4cpp::Category& log, DOMNodeFilter* filter, const map<string,string>* remapper
+ const DOMElement* e, Category& log, DOMNodeFilter* filter, const map<string,string>* remapper
) : m_log(log), m_configNS(shibspconstants::SHIB2SPCONFIG_NS) {
load(e,log,filter,remapper);
}
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
AssertionConsumerService::AssertionConsumerService(const DOMElement* e, const char* appId, Category& log)
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
#include "util/TemplateParameters.h"
#include <fstream>
-#include <log4cpp/Category.hh>
#include <xmltooling/XMLToolingConfig.h>
#include <xmltooling/util/URLEncoder.h>
const Application* app=aid ? SPConfig::getConfig().getServiceProvider()->getApplication(aid) : NULL;
if (!app) {
// Something's horribly wrong.
- log4cpp::Category::getInstance(SHIBSP_LOGCAT".Logout").error("couldn't find application (%s) for logout", aid ? aid : "(missing)");
+ Category::getInstance(SHIBSP_LOGCAT".Logout").error("couldn't find application (%s) for logout", aid ? aid : "(missing)");
throw ConfigurationException("Unable to locate application for logout, deleted?");
}
delete soaper.receive();
}
catch (exception& ex) {
- log4cpp::Category::getInstance(SHIBSP_LOGCAT".Logout").error("error notifying application of logout event: %s", ex.what());
+ Category::getInstance(SHIBSP_LOGCAT".Logout").error("error notifying application of logout event: %s", ex.what());
result = false;
}
soaper.reset();
#include "handler/RemotedHandler.h"
#include <algorithm>
-#include <log4cpp/Category.hh>
#include <xmltooling/unicode.h>
#ifndef SHIBSP_LITE
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace xercesc;
using namespace std;
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace opensaml;
using namespace soap11;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
using namespace shibsp;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
\r
#include <ctime>\r
#include <sstream>\r
-#include <log4cpp/Category.hh>\r
#include <xmltooling/XMLToolingConfig.h>\r
#include <xmltooling/util/DateTime.h>\r
#include <xmltooling/util/NDC.h>\r
\r
using namespace shibsp;\r
using namespace xmltooling;\r
-using namespace log4cpp;\r
using namespace std;\r
\r
namespace shibsp {\r
#include "remoting/ListenerService.h"
#include "util/SPConstants.h"
-#include <log4cpp/Category.hh>
#include <saml/SAMLConfig.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/StorageService.h>
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace shibsp {
{\r
public:\r
XMLAccessControl(const DOMElement* e)\r
- : ReloadableXMLFile(e, log4cpp::Category::getInstance(SHIBSP_LOGCAT".AccessControl")), m_rootAuthz(NULL) {\r
+ : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AccessControl")), m_rootAuthz(NULL) {\r
load(); // guarantees an exception or the policy is loaded\r
}\r
\r
\r
using namespace shibsp;\r
using namespace xmltooling;\r
-using namespace log4cpp;\r
using namespace std;\r
\r
namespace shibsp {\r
#include "util/DOMPropertySet.h"
#include "util/SPConstants.h"
-#include <log4cpp/Category.hh>
-#include <log4cpp/PropertyConfigurator.hh>
+#if defined(XMLTOOLING_LOG4SHIB)
+# include <log4shib/PropertyConfigurator.hh>
+#elif defined(XMLTOOLING_LOG4CPP)
+# include <log4cpp/PropertyConfigurator.hh>
+#else
+# error "Supported logging library not available."
+#endif
#include <xercesc/util/XMLUniDefs.hpp>
#include <xmltooling/XMLToolingConfig.h>
#include <xmltooling/util/NDC.h>
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace {
#include "base.h"
#include "SPConfig.h"
+#include <xmltooling/logging.h>
+
+using namespace xmltooling::logging;
using namespace xercesc;
namespace shibsp {
#include "ServiceProvider.h"
#include "remoting/ListenerService.h"
-#include <log4cpp/Category.hh>
#include <xercesc/dom/DOM.hpp>
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace xercesc;
using namespace std;
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
using xercesc::DOMElement;
#include <shibsp/remoting/ListenerService.h>
-#include <log4cpp/Category.hh>
#include <xercesc/dom/DOM.hpp>
+#include <xmltooling/logging.h>
#include <xmltooling/util/Threads.h>
#ifdef WIN32
protected:
bool log_error() const; // for OS-level errors
- log4cpp::Category* log;
+ xmltooling::logging::Category* log;
/// @endcond
private:
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xmltooling-lite1D.lib wsock32.lib"\r
+ AdditionalDependencies="log4shib1D.lib xerces-c_2D.lib xmltooling-lite1D.lib wsock32.lib"\r
OutputFile="$(OutDir)\$(ProjectName)1_0D.dll"\r
LinkIncremental="2"\r
AdditionalLibraryDirectories="..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xmltooling-lite1.lib wsock32.lib"\r
+ AdditionalDependencies="log4shib1.lib xerces-c_2.lib xmltooling-lite1.lib wsock32.lib"\r
OutputFile="$(OutDir)\$(ProjectName)1_0.dll"\r
LinkIncremental="1"\r
AdditionalLibraryDirectories="..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xsec_1D.lib saml2D.lib xmltooling1D.lib wsock32.lib"\r
+ AdditionalDependencies="log4shib1D.lib xerces-c_2D.lib xsec_1D.lib saml2D.lib xmltooling1D.lib wsock32.lib"\r
OutputFile="$(OutDir)\$(ProjectName)1_0D.dll"\r
LinkIncremental="2"\r
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xsec_1.lib saml2.lib xmltooling1.lib wsock32.lib"\r
+ AdditionalDependencies="log4shib1.lib xerces-c_2.lib xsec_1.lib saml2.lib xmltooling1.lib wsock32.lib"\r
OutputFile="$(OutDir)\$(ProjectName)1_0.dll"\r
LinkIncremental="1"\r
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"\r
using namespace shibsp;
using namespace xmltooling;
-using namespace log4cpp;
using namespace xercesc;
using namespace std;
#define __shibsp_dompropset_h__
#include <shibsp/util/PropertySet.h>
-#include <log4cpp/Category.hh>
+#include <xmltooling/logging.h>
namespace shibsp {
*/
void load(
const xercesc::DOMElement* e,
- log4cpp::Category& log,
+ xmltooling::logging::Category& log,
xercesc::DOMNodeFilter* filter,
const std::map<std::string,std::string>* remapper=NULL
);
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="wsock32.lib log4cpp.lib saml2.lib xmltooling1.lib xerces-c_2.lib"\r
+ AdditionalDependencies="wsock32.lib log4shib1.lib saml2.lib xmltooling1.lib xerces-c_2.lib"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="wsock32.lib log4cppD.lib saml2D.lib xmltooling1D.lib xerces-c_2D.lib"\r
+ AdditionalDependencies="wsock32.lib log4shib1D.lib saml2D.lib xmltooling1D.lib xerces-c_2D.lib"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"\r
Scott Cantor
5/12/03
- $Id$
+ $Id:siterefresh.cpp 2252 2007-05-20 20:20:57Z cantor $
*/
#include <saml/SAMLConfig.h>
#include <saml/saml2/metadata/Metadata.h>
#include <saml/util/SAMLConstants.h>
+#include <xmltooling/logging.h>
#include <xmltooling/XMLToolingConfig.h>
#include <xmltooling/signature/Signature.h>
#include <xmltooling/util/XMLHelper.h>
#include <fstream>
-#include <log4cpp/Category.hh>
-#include <log4cpp/OstreamAppender.hh>
+#if defined(XMLTOOLING_LOG4SHIB)
+# include <log4shib/OstreamAppender.hh>
+#elif defined(XMLTOOLING_LOG4CPP)
+# include <log4cpp/OstreamAppender.hh>
+#endif
#include <xercesc/framework/URLInputSource.hpp>
#include <xercesc/framework/StdInInputSource.hpp>
#include <xercesc/framework/Wrapper4InputSource.hpp>
using namespace xmlsignature;
using namespace xmlconstants;
+using namespace xmltooling::logging;
using namespace xmltooling;
using namespace samlconstants;
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xercesc;
-using namespace log4cpp;
using namespace std;
void verifySignature(DOMDocument* doc, DOMNode* sigNode, const char* cert=NULL)
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cpp.lib xerces-c_2.lib xsec_1.lib saml2.lib xmltooling1.lib"
+ AdditionalDependencies="log4shib1.lib xerces-c_2.lib xsec_1.lib saml2.lib xmltooling1.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="log4cppD.lib xerces-c_2D.lib xsec_1D.lib saml2D.lib xmltooling1D.lib"
+ AdditionalDependencies="log4shib1D.lib xerces-c_2D.lib xsec_1D.lib saml2D.lib xmltooling1D.lib"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\cpp-opensaml2\$(ConfigurationName);..\..\cpp-xmltooling\$(ConfigurationName)"