#include <mw/SenServiceManager.h>
class CSenServiceManager : public CActive |
Protected Member Functions | |
---|---|
CSenServiceManager() |
Inherited Attributes | |
---|---|
CActive::iStatus |
Inherited Enumerations | |
---|---|
CActive:TPriority |
CSenServiceManager class offers API for accessing and managing WebServicesFramework (WSF) service and identity related data. The class is designed using abstract factory pattern: it only offers a instance (pointer) to the actual implementation class meeting this interface. Typically, service consumers use of CSenServiceManager to register service or identity based data, which is required for accessing some invocable, possibly remote service. The class is meant for both default frameworks offered by WSF and for any custom plug-in service invocation framework implementation. The default frameworks are: 1) Identity Based Web Services Framework (ID-WSF). 2) Basic Web Services Framework. For Basic Web Service consumer, the only applicable operations are Identity data managing methods. These can be used to make connection specific Basic Authentication (BASIC-AUTH) credentials available without later end-user interaction. Otherwise required authentication info will be requested via notifier dialog prompts. ID-WSF consumer has to use the CSenServiceManager methods to register authentication service description and identity provider (which are the same service in ID-WSF) and finally associate some actual service (contract to a WSP) to this IDP.
The current client-server framework implementation of CSenServiceManager is synchronous, although class inherits CActive for future extensions. So, the class instance will not be an active object handled by ActiveScheduler, and it does not have implementation in RunL() or DoCancel() methods.
TInt | AddCredentialL | ( | const TDesC8 & | aEndpoint, |
const CSenIdentityProvider & | aIdP, | |||
const CSenCredential2 & | aCredential | |||
) | [pure virtual] |
Consumer applications use this method for adding Credential.
Error codes: KErrBadDescriptor One of the parameters was invalid. KErrNotFound Given IdentityProvider was not found and because of that Credential could not be added. (Fix: Register IdentityProvider first and try to add Credential after that.)
Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aEndpoint | the endpoint which identifies the Credential |
aIdP | the IdentityProvider which will be related to added Credential. |
aCredential | the Credential which will be added. Status codes: KErrNone ok |
TInt | AddCredentialL | ( | const MSenServiceDescription & | aPattern, |
const CSenIdentityProvider & | aIdP, | |||
const CSenCredential2 & | aCredential | |||
) | [pure virtual] |
Consumer applications use this method for adding Credential.
Status codes: KErrNone ok
Error codes: KErrBadDescriptor One of the parameters was invalid. KErrNotFound Given IdentityProvider was not found and because of that Credential could not be added. (Fix: Register IdentityProvider first and try to add Credential after that)
Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Exactly the same pattern has to be used for finding Credential. Note: Used Framework should specify what kind of pattern should be used for handling framework specific Credentials. |
aIdP | the IdentityProvider which will be related to added Credential. |
aCredential | the Credential which will be added. |
TInt | AddCredentialL | ( | const TDesC8 & | aEndpoint, |
const CSenIdentityProvider & | aIdP, | |||
const CSenCredential2 & | aCredential, | |||
const CSenXmlProperties & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for adding Credential.
Error codes: KErrBadDescriptor One of the parameters was invalid. KErrNotFound Given IdentityProvider was not found and because of that Credential could not be added. (Fix: Register IdentityProvider first and try to add Credential after that.)
Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aEndpoint | the endpoint which identifies the Credential |
aIdP | the IdentityProvider which will be related to added Credential. |
aCredential | the Credential which will be added. |
aCredentialProperties | the properties for Credential Status codes: KErrNone ok |
TInt | AddCredentialL | ( | const MSenServiceDescription & | aPattern, |
const CSenIdentityProvider & | aIdP, | |||
const CSenCredential2 & | aCredential, | |||
const CSenXmlProperties & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for adding Credential.
Status codes: KErrNone ok
Error codes: KErrBadDescriptor One of the parameters was invalid. KErrNotFound Given IdentityProvider was not found and because of that Credential could not be added. (Fix: Register IdentityProvider first and try to add Credential after that)
Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Exactly the same pattern has to be used for finding Credential. Note: Used Framework should specify what kind of pattern should be used for handling framework specific Credentials. |
aIdP | the IdentityProvider which will be related to added Credential. |
aCredential | the Credential which will be added. |
aCredentialProperties | the properties for Credential |
Consumer applications use this method to associate some pre-registered service to certain (registered) identity provider. The association adds the service ID (contract of the service that trusts this identity provider) into WSF identity database. In ID-WSF, consumers typically associate authentication service description with some identity provider. This way the ID-WSF framework can find the identity provider by using the contract of the service as a search pattern (for e.g. liberty AS contract).
Parameter | Description |
---|---|
aURI | either the contract or the endpoint identifying some service |
aProviderID | the ID of an identity provider |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrArgument Either or both of the parameters were zero-length or invalid descriptors KErrNotReady Identity provider couldn't be unregistered, e.g. because user didn't allow it. KErrNotFound Web Services framework couldn't find the identity provider by given provider ID.
TInt | CredentialsL | ( | const TDesC8 & | aEndpoint, |
RCredentialArray & | aCredentials, | |||
RCredentialPropertiesArray & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for finding Credentials. IdentityProvider or Username and Password are given either via IdentityProviderL() callback or UsernameL() and Password() callbacks from MSenAuthenticationProvider (which can be given through specialized NewL or NewLC methods).
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Endpoint. KErrSenNoPermission Given IdentityProvider or Username and Password did not match for IdentityProvider which is related to found Credential(s). Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aEndpoint | the endpoint which identifies the Credential |
aCredentials | an array with 0 or more Credentials. The ownership of the array (and Credentials) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete |
aCredentialProperties | an array with 0 or more CredentialsProperties. The ownership of the array (and CredentialProperties) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the CredentialProperties in the array. Note: aCredentials array and aCredentialProperties array are in sync. If Credential has properties, properties are placed in same position in aCredentialProperties array as raleted Credential in aCredentials array. Note: If Credential has no properties, there is NULL in related position in aCredentialProperties array. all the Credentials in the array. Status codes: KErrNone ok |
TInt | CredentialsL | ( | const TDesC8 & | aEndpoint, |
const CSenIdentityProvider & | aIdP, | |||
RCredentialArray & | aCredentials, | |||
RCredentialPropertiesArray & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for finding Credentials.
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Endpoint. KErrSenNoPermission Given IdentityProvider did not match for IdentityProvider which is related to found Credential. Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aEndpoint | the endpoint which identifies the Credential |
aIdP | the IdentityProvider which should match for IdentityProvider which is related to found Credential(s). |
aCredentials | an array with 0 or more Credentials. The ownership of the array (and Credentials) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the Credentials in the array. |
aCredentialProperties | an array with 0 or more CredentialsProperties. The ownership of the array (and CredentialProperties) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the CredentialProperties in the array. Note: aCredentials array and aCredentialProperties array are in sync. If Credential has properties, properties are placed in same position in aCredentialProperties array as raleted Credential in aCredentials array. Note: If Credential has no properties, there is NULL in related position in aCredentialProperties array. Status codes: KErrNone ok |
TInt | CredentialsL | ( | const TDesC8 & | aEndpoint, |
const TDesC8 & | aUserName, | |||
const TDesC8 & | aPassword, | |||
RCredentialArray & | aCredentials, | |||
RCredentialPropertiesArray & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for finding Credentials.
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Endpoint. KErrSenNoPermission Given IdentityProvider did not match for IdentityProvider which is related to found Credential. Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aEndpoint | the endpoint which identifies the Credential |
aUserName | the username which should match for username in IdentityProvider which is related to found Credential(s). |
aPassword | the password which should match for password in IdentityProvider which is related to found Credential(s). |
aCredentials | an array with 0 or more Credentials. The ownership of the array (and Credentials) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the Credentials in the array. |
aCredentialProperties | an array with 0 or more CredentialsProperties. The ownership of the array (and CredentialProperties) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the CredentialProperties in the array. Note: aCredentials array and aCredentialProperties array are in sync. If Credential has properties, properties are placed in same position in aCredentialProperties array as raleted Credential in aCredentials array. Note: If Credential has no properties, there is NULL in related position in aCredentialProperties array. Status codes: KErrNone ok |
TInt | CredentialsL | ( | const MSenServiceDescription & | aPattern, |
RCredentialArray & | aCredentials, | |||
RCredentialPropertiesArray & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for finding Credentials. IdentityProvider or Username and Password are given either via IdentityProviderL() callback or UsernameL() and Password() callbacks from MSenAuthenticationProvider (which can be given through specialized NewL or NewLC methods).
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Endpoint. KErrSenNoPermission Given IdentityProvider or Username and Password did not match for IdentityProvider which is related to found Credential(s). Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Pattern which was used to add Credential has to be used for finding Credential. Note: Used Framework should specify what kind of pattern should be used for storing framework specific Credentials. |
aCredentials | an array with 0 or more Credentials. The ownership of the array (and Credentials) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the Credentials in the array. |
aCredentialProperties | an array with 0 or more CredentialsProperties. The ownership of the array (and CredentialProperties) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the CredentialProperties in the array. Note: aCredentials array and aCredentialProperties array are in sync. If Credential has properties, properties are placed in same position in aCredentialProperties array as raleted Credential in aCredentials array. Note: If Credential has no properties, there is NULL in related position in aCredentialProperties array. Status codes: KErrNone ok |
TInt | CredentialsL | ( | const MSenServiceDescription & | aPattern, |
const CSenIdentityProvider & | aIdP, | |||
RCredentialArray & | aCredentials, | |||
RCredentialPropertiesArray & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for finding Credentials.
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Endpoint. KErrSenNoPermission Given IdentityProvider did not match for IdentityProvider which is related to found Credential. Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Pattern which was used to add Credential has to be used for finding Credential. Note: Used Framework should specify what kind of pattern should be used for storing framework specific Credentials. |
aIdP | the IdentityProvider which should match for IdentityProvider which is related to found Credential(s). |
aCredentials | an array with 0 or more Credentials. The ownership of the array (and Credentials) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the Credentials in the array. |
aCredentialProperties | an array with 0 or more CredentialsProperties. The ownership of the array (and CredentialProperties) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the CredentialProperties in the array. Note: aCredentials array and aCredentialProperties array are in sync. If Credential has properties, properties are placed in same position in aCredentialProperties array as raleted Credential in aCredentials array. Note: If Credential has no properties, there is NULL in related position in aCredentialProperties array. Status codes: KErrNone ok |
TInt | CredentialsL | ( | const MSenServiceDescription & | aPattern, |
const TDesC8 & | aUserName, | |||
const TDesC8 & | aPassword, | |||
RCredentialArray & | aCredentials, | |||
RCredentialPropertiesArray & | aCredentialProperties | |||
) | [pure virtual] |
Consumer applications use this method for finding Credentials.
Status codes: KErrNone ok
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Endpoint. KErrSenNoPermission Given IdentityProvider did not match for IdentityProvider which is related to found Credential. Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Pattern which was used to add Credential has to be used for finding Credential. Note: Used Framework should specify what kind of pattern should be used for storing framework specific Credentials. |
aUserName | the username which should match for username in IdentityProvider which is related to found Credential(s). |
aPassword | the password which should match for password in IdentityProvider which is related to found Credential(s). |
aCredentials | an array with 0 or more Credentials. The ownership of the array (and Credentials) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the Credentials in the array. |
aCredentialProperties | an array with 0 or more CredentialsProperties. The ownership of the array (and CredentialProperties) is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to close the array and delete all the CredentialProperties in the array. Note: aCredentials array and aCredentialProperties array are in sync. If Credential has properties, properties are placed in same position in aCredentialProperties array as raleted Credential in aCredentials array. Note: If Credential has no properties, there is NULL in related position in aCredentialProperties array. |
Dissociate a service from an identity provider.
Parameter | Description |
---|---|
aServiceID | the contract or endpoint of a service |
aProviderID | the id of an identity provider |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrArgument Either or both of the parameters were zero-length or invalid descriptors KErrNotReady Service couldn't be dissociated, e.g. because user didn't allow it. KErrNotFound Web Services framework couldn't find the identity provider by given provider ID.
This method provides an interface which is identified by unique ID (UID). Currently, there is only one supported interface: KSenInterfaceUidInternalServiceManager => MSenInternalServiceManager
Parameter | Description |
---|---|
aUID | is the UID of the interface being requested |
Returns: TAny* pointer to the interface, or if no interface to given UID exists, function returns NULL. In typical cases, returned pointer should be cast to some preknown M-class pointer (the actual new interface).
IMPORT_C CSenServiceManager * | NewL | ( | MSenAuthenticationProvider & | aAuthProvider | ) | [static] |
Two-phased constructor.
IMPORT_C CSenServiceManager * | NewLC | ( | MSenAuthenticationProvider & | aAuthProvider | ) | [static] |
Two-phased constructor.
TInt | RegisterIdentityProviderL | ( | CSenIdentityProvider & | aProvider | ) | [pure virtual] |
Register an identity provider for the current active identity. It is required for both Basic Web Service and ID-WSF consumers that endpoint is defined in identity provider instance to make this data accessible later on while creating a service connection. A possible work-around for this would be to unregister such conflicting identity provider using this particular ProviderID, but this solution is not recommended. Instead, separate providers, locating in different endpoints, SHOULD always use different ProviderIDs. Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aProvider | an identity provider to be registered |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrBadDescriptor aProvider was an invalid identity provider and couldn't be registered. KErrNotReady Service description couldn't be registered, e.g. because end-user permission to modify WSF data was not granted (a dialog prompt). KErrSenProviderIdInUseByAnotherEndpoint attempt to register an identity provider failed, because ProviderID was already reserved in the use of another endpoint.
TInt | RegisterServiceDescriptionL | ( | MSenServiceDescription & | aSD | ) | [pure virtual] |
Used by consumer applications to register new service to WSF The service could not otherwise be discovered while creating a service connection. ID-WSF Authentication Service is an example of this kind of remote service. The Basic Web Service consumer does not need to and cannot register any service related data. In service description, the default framework ID is "ID-WSF", through which frameworks performing the actual registration are looked up. For any custom framework plug-in, the framework ID must be separately set. For ID-WSF service descriptions it is mandatory to set both contract and endpoint. Calling the method performs one of the following: 1. It registers a new service description 2. It updates an existing service description with matching contract and endpoint.
Parameter | Description |
---|---|
aSD | a service description to be registered |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrNotReady Service description couldn't be registered, e.g. because end-user permission to modify WSF data was not granted (a dialog prompt). KErrNotFound Web Services framework couldn't find any required framework plug-in used to register a service description of a given type (framework ID). KErrSenNoContract Given service description didn't have a contract specified, even if the used framework needs one. For ID-WSF it is mandatory to define a contract for service description registration. KErrSenNoEndpoint Given service description didn't have a endpoint specified, even if the used framework needs one. For ID-WSF it is mandatory to define an endpoint for service description registration. KErrSenNoContractNoEndPoint Given service description didn't have an endpoint and contract specified, even if the used framework needs one. For ID-WSF it is mandatory to define both an endpoint and contract for service description registration. Other error codes are system-wide Symbian error codes.
TInt | RemoveCredentialsL | ( | const MSenServiceDescription & | aPattern, |
const CSenIdentityProvider & | aIdP | |||
) | [pure virtual] |
Consumer applications use this method for removing Credentials.
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Pattern. KErrSenNoPermission Given IdentityProvider did not match for IdentityProvider which is related to found Credential(s). Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Pattern which was used to add Credential has to be used for removing Credential. Note: Used Framework should specify what kind of pattern should be used for handling framework specific Credentials. |
aIdP | the IdentityProvider which should match for IdentityProvider which is related to found Credential(s). Status codes: KErrNone ok |
TInt | RemoveCredentialsL | ( | const CSenIdentityProvider & | aIdP | ) | [pure virtual] |
Consumer applications use this method for removing Credentials.
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Pattern. KErrSenNoPermission Given IdentityProvider did not match for IdentityProvider which is related to found Credential(s). Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aIdP | the IdentityProvider which should match for IdentityProvider which is related to found Credential(s). Status codes: KErrNone ok |
TInt | RemoveCredentialsL | ( | const MSenServiceDescription & | aPattern, |
const TDesC8 & | aUserName, | |||
const TDesC8 & | aPassword | |||
) | [pure virtual] |
Consumer applications use this method for removing Credentials.
Error codes: KErrNotFound Web Services framework couldn't find the Credentials using given Pattern. KErrSenNoPermission Given Username and Password did not match for IdentityProvider which is related to found Credential(s). Other error codes are system-wide Symbian error codes.
Parameter | Description |
---|---|
aPattern | the pattern which identifies the Credential Note: Pattern which was used to add Credential has to be used for finding Credential. Note: Used Framework should specify what kind of pattern should be used for handling framework specific Credentials. |
aUserName | the username which should match for username in IdentityProvider which is related to found Credential(s). |
aPassword | the password which should match for password in IdentityProvider which is related to found Credential(s). Status codes: KErrNone ok |
TInt | ServiceDescriptionsL | ( | const TDesC8 & | aURI, |
RServiceDescriptionArray & | aList | |||
) | [pure virtual] |
Consumers use this to find services with matching URI (contract or endpoint) of the service. ID-WSF consumers typically use the service type (contract) they are interested on. Contract is typically some URN and most endpoints are URLs. The Basic Web Service descriptions are not written into WSF database, so they cannot be searched using this method.
Parameter | Description |
---|---|
aList | an array with 0 or more service descriptions which are already registered to WSF. The ownership of the array is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to free any entries. |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrNotFound No matching service description was found. Other error codes are system-wide Symbian error codes.
TInt | ServiceDescriptionsL | ( | MSenServiceDescription & | aSD, |
RServiceDescriptionArray & | aList | |||
) | [pure virtual] |
Consumers use this to find services with matching service description. The service description may include specific contract or endpoint of the service as a searching criteria. Contract is typically some URN and most endpoints are URLs. The Basic Web Service descriptions are not written into WSF database, so they cannot be searched using this method.
Parameter | Description |
---|---|
aSD | a service description specifying search pattern (which includes contract, URI or both) used to find matching service descriptions. |
aList | an array with 0 or more ServiceDescriptions which are already registered to WSF. The ownership of the array is passed to the caller so before the array goes out of scope in the client, the caller must call RPointerArray::ResetAndDestroy() on the array to free any entries. |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrNotFound No matching service descriptions found. Other error codes are system-wide Symbian error codes.
TInt | UnregisterIdentityProviderL | ( | CSenIdentityProvider & | aProvider | ) | [pure virtual] |
Unregister an identity provider from the current active Identity.
Parameter | Description |
---|---|
aProvider | an identity provider to be unregistered |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrBadDescriptor aProvider was an invalid identity provider and couldn't be unregistered. KErrNotReady Identity provider couldn't be unregistered, e.g. because user didn't allow it. KErrNotFound aProvider was not found and couldn't be unregistered. Other error codes are system-wide Symbian error codes.
TInt | UnregisterServiceDescriptionL | ( | MSenServiceDescription & | aSD | ) | [pure virtual] |
Used by consumer application to to inform the ServiceManager about a service which no longer is available. The ServiceManager will remove the service from its database as soon as it is no longer used.
Parameter | Description |
---|---|
aSD | a ServiceDescription to be unregistered |
Returns: status/error code. Status codes: KErrNone ok Error codes: KErrBadDescriptor aSD was invalid service description and couldn't be unregistered. KErrNotReady Service description couldn't be registered, e.g. because end-user permission to modify WSF data was not granted (a dialog prompt). KErrNotFound Couldn't find a matching framework to register service description or couldn't find a matching service description. KErrSenNoContract Given service description didn't have a contract specified, even if the used framework needs one. KErrSenNoEndpoint Given service description didn't have a endpoint specified, even if the used framework needs one. KErrSenNoContractNoEndPoint Given service description didn't have an endpoint and contract specified, even if the used framework needs one. For ID-WSF it is mandatory to define both an endpoint and contract for service description registration. Other error codes are system-wide Symbian error codes.