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, ALGTYPE_AUTHNENCRYPT
}
 

Types of XML Security algorithms.


Public Member Functions

virtual bool init (bool deprecationSupport=true)=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.
virtual MutexgetNamedMutex (const char *name)=0
 Returns a reference to a named mutex.
const KeyInfoResolvergetKeyInfoResolver () const
 Returns the global KeyInfoResolver instance.
ReplayCachegetReplayCache () const
 Returns the global ReplayCache instance.
const DataSealergetDataSealer () const
 Returns the global DataSealer instance.
void setKeyInfoResolver (KeyInfoResolver *keyInfoResolver)
 Sets the global KeyInfoResolver instance.
void setReplayCache (ReplayCache *replayCache)
 Sets the global ReplayCache instance.
void setDataSealer (DataSealer *dataSealer)
 Sets the global DataSealer 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 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< StorageService,
std::string, const
xercesc::DOMElement * > 
StorageServiceManager
 Manages factories for StorageService plugins.
PluginManager
< CredentialResolver,
std::string, const
xercesc::DOMElement * > 
CredentialResolverManager
 Manages factories for CredentialResolver plugins.
PluginManager< KeyInfoResolver,
std::string, const
xercesc::DOMElement * > 
KeyInfoResolverManager
 Manages factories for KeyInfoResolver plugins.
PluginManager< PathValidator,
std::string, const
xercesc::DOMElement * > 
PathValidatorManager
 Manages factories for PathValidator plugins.
PluginManager< TrustEngine,
std::string, const
xercesc::DOMElement * > 
TrustEngineManager
 Manages factories for TrustEngine plugins.
PluginManager
< DataSealerKeyStrategy,
std::string, const
xercesc::DOMElement * > 
DataSealerKeyStrategyManager
 Manages factories for DataSealerKeyStrategy plugins.
PluginManager< SOAPTransport,
std::string,
SOAPTransport::Address
SOAPTransportManager
 Manages factories for SOAPTransport plugins.

Protected Attributes

boost::scoped_ptr
< KeyInfoResolver
m_keyInfoResolver
 Global KeyInfoResolver instance.
boost::scoped_ptr< ReplayCachem_replayCache
 Global ReplayCache instance.
boost::scoped_ptr< DataSealerm_dataSealer
boost::scoped_ptr< PathResolverm_pathResolver
 Global PathResolver instance.
boost::scoped_ptr< TemplateEnginem_templateEngine
 Global TemplateEngine instance.
boost::scoped_ptr< 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 DataSealer* xmltooling::XMLToolingConfig::getDataSealer (  )  const

Returns the global DataSealer instance.

Returns:
global DataSealer or nullptr
const KeyInfoResolver* xmltooling::XMLToolingConfig::getKeyInfoResolver (  )  const

Returns the global KeyInfoResolver instance.

Returns:
global KeyInfoResolver or nullptr
virtual Mutex& xmltooling::XMLToolingConfig::getNamedMutex ( const char *  name  )  [pure virtual]

Returns a reference to a named mutex.

The first access to a given name will create the object.

Parameters:
name name of mutex to access
Returns:
reference to a mutex object
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 ( bool  deprecationSupport = true  )  [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.

Parameters:
deprecationSupport true iff plugins should support any deprecated features
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::setDataSealer ( DataSealer dataSealer  ) 

Sets the global DataSealer instance.

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

Parameters:
dataSealer new DataSealer instance to store
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

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 24 Jan 2020 for xmltooling by  doxygen 1.6.1