xmltooling::XMLToolingConfig Class Reference

Singleton object that manages library startup/shutdown.configuration. More...

#include <xmltooling/XMLToolingConfig.h>

Inheritance diagram for xmltooling::XMLToolingConfig:
xmltooling::Lockable

List of all members.

Public Types

enum  XMLSecurityAlgorithmType {
  ALGTYPE_UNK, ALGTYPE_DIGEST, ALGTYPE_SIGN, ALGTYPE_ENCRYPT,
  ALGTYPE_KEYENCRYPT, ALGTYPE_KEYAGREE
}
 

Types of XML Security algorithms.


Public Member Functions

virtual bool init ()=0
 Initializes library.
virtual void term ()=0
 Shuts down library.
virtual bool load_library (const char *path, void *context=0)=0
 Loads a shared/dynamic library extension.
virtual bool log_config (const char *config=0)=0
 Configure logging system.
virtual ParserPoolgetParser () const =0
 Obtains a non-validating parser pool.
virtual ParserPoolgetValidatingParser () const =0
 Obtains a validating parser pool.
const KeyInfoResolvergetKeyInfoResolver () const
 Returns the global KeyInfoResolver instance.
ReplayCachegetReplayCache () const
 Returns the global ReplayCache instance.
void setKeyInfoResolver (KeyInfoResolver *keyInfoResolver)
 Sets the global KeyInfoResolver instance.
void setReplayCache (ReplayCache *replayCache)
 Sets the global ReplayCache instance.
PathResolvergetPathResolver () const
 Returns the global PathResolver instance.
TemplateEnginegetTemplateEngine () const
 Returns the global TemplateEngine instance.
const URLEncodergetURLEncoder () const
 Returns the global URLEncoder instance.
void setPathResolver (PathResolver *pathResolver)
 Sets the global PathResolver instance.
void setTemplateEngine (TemplateEngine *templateEngine)
 Sets the global TemplateEngine instance.
void setURLEncoder (URLEncoder *urlEncoder)
 Sets the global URLEncoder instance.
virtual XSECCryptoX509CRLX509CRL () const =0
 Returns an X.509 CRL implementation object.
virtual std::pair< const char
*, unsigned int > 
mapXMLAlgorithmToKeyAlgorithm (const XMLCh *xmlAlgorithm) const =0
 Maps an XML Signature/Encryption algorithm identifier to a library-specific key algorithm and size for use in resolving credentials.
virtual void registerXMLAlgorithm (const XMLCh *xmlAlgorithm, const char *keyAlgorithm, unsigned int size=0, XMLSecurityAlgorithmType type=ALGTYPE_UNK)=0
 Registers an XML Signature/Encryption algorithm identifier against a library-specific key algorithm and size for use in resolving credentials.
virtual bool isXMLAlgorithmSupported (const XMLCh *xmlAlgorithm, XMLSecurityAlgorithmType type=ALGTYPE_UNK)=0
 Checks for implementation support of a particular XML Security algorithm.

Static Public Member Functions

static XMLToolingConfiggetConfig ()
 Returns the global configuration object for the library.

Public Attributes

std::string catalog_path
 List of catalog files to load into validating parser pool at initialization time.
std::string user_agent
 A User-Agent header to include in HTTP client requests.
unsigned int clock_skew_secs
 Adjusts any clock comparisons to be more liberal/permissive by the indicated number of seconds.
PluginManager< KeyInfoResolver,
std::string, const
xercesc::DOMElement * > 
KeyInfoResolverManager
 Manages factories for KeyInfoResolver plugins.
PluginManager
< CredentialResolver,
std::string, const
xercesc::DOMElement * > 
CredentialResolverManager
 Manages factories for CredentialResolver plugins.
PluginManager< TrustEngine,
std::string, const
xercesc::DOMElement * > 
TrustEngineManager
 Manages factories for TrustEngine plugins.
PluginManager< StorageService,
std::string, const
xercesc::DOMElement * > 
StorageServiceManager
 Manages factories for StorageService plugins.
PluginManager< SOAPTransport,
std::string,
SOAPTransport::Address
SOAPTransportManager
 Manages factories for SOAPTransport plugins.

Protected Attributes

KeyInfoResolverm_keyInfoResolver
 Global KeyInfoResolver instance.
ReplayCachem_replayCache
 Global ReplayCache instance.
PathResolverm_pathResolver
 Global PathResolver instance.
TemplateEnginem_templateEngine
 Global TemplateEngine instance.
URLEncoderm_urlEncoder
 Global URLEncoder instance for use by URL-related functions.

Detailed Description

Singleton object that manages library startup/shutdown.configuration.

A locking interface is supplied as a convenience for code that wants to obtain a global system lock, but the actual configuration itself is not synchronized.


Member Function Documentation

static XMLToolingConfig& xmltooling::XMLToolingConfig::getConfig (  )  [static]

Returns the global configuration object for the library.

Returns:
reference to the global library configuration object
const KeyInfoResolver* xmltooling::XMLToolingConfig::getKeyInfoResolver (  )  const

Returns the global KeyInfoResolver instance.

Returns:
global KeyInfoResolver or nullptr
virtual ParserPool& xmltooling::XMLToolingConfig::getParser (  )  const [pure virtual]

Obtains a non-validating parser pool.

Library must be initialized first.

Returns:
reference to a non-validating parser pool.
PathResolver* xmltooling::XMLToolingConfig::getPathResolver (  )  const

Returns the global PathResolver instance.

Returns:
global PathResolver or nullptr
ReplayCache* xmltooling::XMLToolingConfig::getReplayCache (  )  const

Returns the global ReplayCache instance.

Returns:
global ReplayCache or nullptr
TemplateEngine* xmltooling::XMLToolingConfig::getTemplateEngine (  )  const

Returns the global TemplateEngine instance.

Returns:
global TemplateEngine or nullptr
const URLEncoder* xmltooling::XMLToolingConfig::getURLEncoder (  )  const

Returns the global URLEncoder instance.

Returns:
global URLEncoder or nullptr
virtual ParserPool& xmltooling::XMLToolingConfig::getValidatingParser (  )  const [pure virtual]

Obtains a validating parser pool.

Library must be initialized first. Schema/catalog registration must be externally synchronized.

Returns:
reference to a validating parser pool.
virtual bool xmltooling::XMLToolingConfig::init (  )  [pure virtual]

Initializes library.

Each process using the library MUST call this function exactly once before using any library classes except for the LogConfig method.

Returns:
true iff initialization was successful
virtual bool xmltooling::XMLToolingConfig::isXMLAlgorithmSupported ( const XMLCh *  xmlAlgorithm,
XMLSecurityAlgorithmType  type = ALGTYPE_UNK 
) [pure virtual]

Checks for implementation support of a particular XML Security algorithm.

Parameters:
xmlAlgorithm XML Signature/Encryption algorithm identifier
type type of algorithm, or ALGTYPE_UNK to ignore
Returns:
true iff the algorithm is supported by the underlying libraries
virtual bool xmltooling::XMLToolingConfig::load_library ( const char *  path,
void *  context = 0 
) [pure virtual]

Loads a shared/dynamic library extension.

Extension libraries are managed using a pair of "C" linkage functions:
extern "C" int xmltooling_extension_init(void* context);
extern "C" void xmltooling_extension_term();

This method is internally synchronized.

Parameters:
path pathname of shared library to load into process
context arbitrary data to pass to library initialization hook
Returns:
true iff library was loaded successfully
virtual bool xmltooling::XMLToolingConfig::log_config ( const char *  config = 0  )  [pure virtual]

Configure logging system.

May be called first, before initializing the library. Other calls to it must be externally synchronized.

Parameters:
config either a logging configuration file, or a level from the set (DEBUG, INFO, NOTICE, WARN, ERROR, CRIT, ALERT, FATAL, EMERG)
Returns:
true iff configuration was successful
virtual std::pair<const char*,unsigned int> xmltooling::XMLToolingConfig::mapXMLAlgorithmToKeyAlgorithm ( const XMLCh *  xmlAlgorithm  )  const [pure virtual]

Maps an XML Signature/Encryption algorithm identifier to a library-specific key algorithm and size for use in resolving credentials.

Parameters:
xmlAlgorithm XML Signature/Encryption algorithm identifier
Returns:
a general key algorithm and key size (or 0 if the size is irrelevant)
virtual void xmltooling::XMLToolingConfig::registerXMLAlgorithm ( const XMLCh *  xmlAlgorithm,
const char *  keyAlgorithm,
unsigned int  size = 0,
XMLSecurityAlgorithmType  type = ALGTYPE_UNK 
) [pure virtual]

Registers an XML Signature/Encryption algorithm identifier against a library-specific key algorithm and size for use in resolving credentials.

Parameters:
xmlAlgorithm XML Signature/Encryption algorithm identifier
keyAlgorithm a key algorithm
size a key size (or 0 if the size is irrelevant)
type type of algorithm, if known
void xmltooling::XMLToolingConfig::setKeyInfoResolver ( KeyInfoResolver keyInfoResolver  ) 

Sets the global KeyInfoResolver instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
keyInfoResolver new KeyInfoResolver instance to store
void xmltooling::XMLToolingConfig::setPathResolver ( PathResolver pathResolver  ) 

Sets the global PathResolver instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
pathResolver new PathResolver instance to store
void xmltooling::XMLToolingConfig::setReplayCache ( ReplayCache replayCache  ) 

Sets the global ReplayCache instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
replayCache new ReplayCache instance to store
void xmltooling::XMLToolingConfig::setTemplateEngine ( TemplateEngine templateEngine  ) 

Sets the global TemplateEngine instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
templateEngine new TemplateEngine instance to store
void xmltooling::XMLToolingConfig::setURLEncoder ( URLEncoder urlEncoder  ) 

Sets the global URLEncoder instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
urlEncoder new URLEncoder instance to store
virtual void xmltooling::XMLToolingConfig::term (  )  [pure virtual]

Shuts down library.

Each process using the library SHOULD call this function exactly once before terminating itself


Member Data Documentation

List of catalog files to load into validating parser pool at initialization time.

Like other path settings, the separator depends on the platform (semicolon on Windows, colon otherwise).

Global KeyInfoResolver instance.

Global PathResolver instance.

Global ReplayCache instance.

Global TemplateEngine instance.

Global URLEncoder instance for use by URL-related functions.

Manages factories for SOAPTransport plugins.

The factory interface takes a peer name/endpoint pair.

A User-Agent header to include in HTTP client requests.


The documentation for this class was generated from the following file:

Generated on 14 Dec 2010 for xmltooling by  doxygen 1.6.1