X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=shibsp%2FServiceProvider.h;h=59f75a4393d2daf7b4ce9f803f6a61343f7d6570;hb=1347c3386a3ec61b9d3c0fa0cb89db507c337a11;hp=ecb86fb75a9d9658569813f3ba10bf9cbbc621ac;hpb=2adde4877b6b5db8e19d02e302552b8904f0ae86;p=shibboleth%2Fsp.git diff --git a/shibsp/ServiceProvider.h b/shibsp/ServiceProvider.h index ecb86fb..59f75a4 100644 --- a/shibsp/ServiceProvider.h +++ b/shibsp/ServiceProvider.h @@ -1,5 +1,5 @@ /* - * 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. @@ -24,12 +24,19 @@ #define __shibsp_sp_h__ #include + +#include + +namespace xmltooling { + class XMLTOOL_API SOAPTransport; + class XMLTOOL_API StorageService; +}; + #ifndef SHIBSP_LITE -# include -# include -# include +namespace opensaml { + class SAML_API SecurityPolicyRule; +}; #endif -#include namespace shibsp { @@ -41,6 +48,7 @@ namespace shibsp { class SHIBSP_API SPRequest; class SHIBSP_API TemplateParameters; #ifndef SHIBSP_LITE + class SHIBSP_API SecurityPolicyProvider; class SHIBSP_API TransactionLog; #endif @@ -54,9 +62,9 @@ namespace shibsp { { MAKE_NONCOPYABLE(ServiceProvider); protected: - ServiceProvider() {} + ServiceProvider(); public: - virtual ~ServiceProvider() {} + virtual ~ServiceProvider(); /** * Loads a configuration and prepares the instance for use. @@ -78,8 +86,8 @@ namespace shibsp { /** * 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 @@ -102,44 +110,53 @@ namespace shibsp { #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& 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;