/*
- * 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.
#define __shibsp_sp_h__
#include <shibsp/util/PropertySet.h>
+
+#include <xmltooling/Lockable.h>
+
+namespace xmltooling {
+ class XMLTOOL_API SOAPTransport;
+ class XMLTOOL_API StorageService;
+};
+
#ifndef SHIBSP_LITE
-# include <saml/binding/SecurityPolicyRule.h>
-# include <xmltooling/soap/SOAPTransport.h>
-# include <xmltooling/util/StorageService.h>
+namespace opensaml {
+ class SAML_API SecurityPolicyRule;
+};
#endif
-#include <xmltooling/Lockable.h>
namespace shibsp {
class SHIBSP_API SPRequest;
class SHIBSP_API TemplateParameters;
#ifndef SHIBSP_LITE
+ class SHIBSP_API SecurityPolicyProvider;
class SHIBSP_API TransactionLog;
#endif
{
MAKE_NONCOPYABLE(ServiceProvider);
protected:
- ServiceProvider() {}
+ ServiceProvider();
public:
- virtual ~ServiceProvider() {}
+ virtual ~ServiceProvider();
/**
* Loads a configuration and prepares the instance for use.
/**
* 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
#ifndef SHIBSP_LITE
/**
+ * Returns a SecurityPolicyProvider instance.
+ *
+ * @param required true iff an exception should be thrown if no SecurityPolicyProvider is available
+ * @return a SecurityPolicyProvider
+ */
+ virtual SecurityPolicyProvider* getSecurityPolicyProvider(bool required=true) const;
+
+ /**
+ * @deprecated
* Returns the security policy settings for an identified policy.
*
- * @param id identifies the policy to return
+ * @param id identifies the policy to return, or nullptr for default
* @return a PropertySet
*/
virtual const PropertySet* getPolicySettings(const char* id) const=0;
/**
+ * @deprecated
* Returns the security policy rules for an identified policy.
*
- * @param id identifies the policy to return
+ * @param id identifies the policy to return, or nullptr for default
* @return an array of policy rules
*/
virtual const std::vector<const opensaml::SecurityPolicyRule*>& getPolicyRules(const char* id) const=0;
/**
- * Sets implementation-specific transport options for an identified policy.
+ * Sets implementation-specific transport options.
*
- * @param id identifies the policy to return
* @param transport a SOAPTransport object
* @return true iff all options were successfully set
*/
- virtual bool setTransportOptions(const char* id, xmltooling::SOAPTransport& transport) const=0;
+ virtual bool setTransportOptions(xmltooling::SOAPTransport& transport) const=0;
#endif
/**
* Returns a RequestMapper instance.
*
* @param required true iff an exception should be thrown if no RequestMapper is available
- * @param a RequestMapper
+ * @return a RequestMapper
*/
virtual RequestMapper* getRequestMapper(bool required=true) const=0;
/**
* Returns an Application instance matching the specified ID.
*
- * @param applicationId the ID of the application
- * @return pointer to the application, or NULL
+ * @param applicationId the ID of the application, or nullptr for the default
+ * @return pointer to the application, or nullptr
*/
virtual const Application* getApplication(const char* applicationId) const=0;