#define __shibsp_sp_h__
#include <shibsp/util/PropertySet.h>
-#include <saml/binding/SecurityPolicyRule.h>
-#include <xmltooling/signature/CredentialResolver.h>
-#include <xmltooling/util/StorageService.h>
+#ifndef SHIBSP_LITE
+# include <saml/binding/SecurityPolicyRule.h>
+# include <xmltooling/soap/SOAPTransport.h>
+# include <xmltooling/util/StorageService.h>
+#endif
+#include <xmltooling/Lockable.h>
namespace shibsp {
class SHIBSP_API SessionCache;
class SHIBSP_API SPRequest;
class SHIBSP_API TemplateParameters;
+#ifndef SHIBSP_LITE
class SHIBSP_API TransactionLog;
+#endif
/**
* Interface to a Shibboleth ServiceProvider instance.
*/
virtual void init()=0;
+#ifndef SHIBSP_LITE
/**
* Returns a TransactionLog instance.
*
* @return a StorageService if available, or NULL
*/
virtual xmltooling::StorageService* getStorageService(const char* id) const=0;
+#endif
/**
* Returns a SessionCache instance.
*/
virtual ListenerService* getListenerService(bool required=true) const=0;
+#ifndef SHIBSP_LITE
/**
- * Returns a CredentialResolver instance mapped to a key.
- *
- * @param id a NULL-terminated key identifying the CredentialResolver to the configuration
- * @return a CredentialResolver if available, or NULL
- */
- virtual xmlsignature::CredentialResolver* getCredentialResolver(const char* id) const=0;
+ * Returns the security policy settings for an identified policy.
+ *
+ * @param id identifies the policy to return
+ * @return a PropertySet
+ */
+ virtual const PropertySet* getPolicySettings(const char* id) const=0;
/**
* Returns the security policy rules for an identified policy.
*
- * @param id identifies the policy rules to return, or NULL for the default policy
+ * @param id identifies the policy to return
* @return an array of policy rules
*/
- virtual std::vector<const opensaml::SecurityPolicyRule*>& getPolicyRules(const char* id=NULL) const=0;
+ virtual const std::vector<const opensaml::SecurityPolicyRule*>& getPolicyRules(const char* id) const=0;
+
+ /**
+ * Sets implementation-specific transport options.
+ *
+ * @param transport a SOAPTransport object
+ * @return true iff all options were successfully set
+ */
+ 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;