CSenWsSecurityHeader2 Class Reference

#include <mw/SenWsSecurityHeader2.h>

Link against: SenUtils.lib

class CSenWsSecurityHeader2 : public CSenFragmentBase

Inherits from

  • CSenWsSecurityHeader2
    Public Member Enumerations
    enumTPasswordType { EText, EDigest }
    Public Member Functions
    virtual ~CSenWsSecurityHeader2()
    IMPORT_C CSenWsSecurityHeader2 *NewL(RSenDocument, TXmlEngElement)
    IMPORT_C CSenWsSecurityHeader2 *NewL(const TDesC8 &, RSenDocument, TXmlEngElement)
    IMPORT_C CSenWsSecurityHeader2 *NewL(const TDesC8 &, const TDesC8 &, RSenDocument, TXmlEngElement)
    IMPORT_C CSenWsSecurityHeader2 *NewLC(RSenDocument, TXmlEngElement)
    IMPORT_C CSenWsSecurityHeader2 *NewLC(const TDesC8 &, RSenDocument, TXmlEngElement)
    IMPORT_C CSenWsSecurityHeader2 *NewLC(const TDesC8 &, const TDesC8 &, RSenDocument, TXmlEngElement)
    IMPORT_C TIntTimestampL(const TDesC8 &, const TDesC8 &, HBufC8 *&)
    IMPORT_C TIntTimestampL(const TDesC8 &, HBufC8 *&)
    IMPORT_C HBufC8 *UsernameTokenL(CSenIdentityProvider &)
    IMPORT_C HBufC8 *UsernameTokenL(CSenIdentityProvider &, CSenWsSecurityHeader2::TPasswordType)
    IMPORT_C TIntUsernameTokenL(const TDesC8 &, HBufC8 *&)
    IMPORT_C TIntUsernameTokenL(const TDesC8 &, const TDesC8 &, HBufC8 *&)
    IMPORT_C TIntUsernameTokenL(const TDesC8 &, const TDesC8 &, CSenWsSecurityHeader2::TPasswordType, HBufC8 *&)
    virtual IMPORT_C TPtrC8XmlNs()
    virtual IMPORT_C TPtrC8XmlNsPrefix()
    Protected Member Functions
    CSenWsSecurityHeader2()
    IMPORT_C voidBaseConstructL(RSenDocument, TXmlEngElement)
    IMPORT_C voidBaseConstructL(const TDesC8 &, RSenDocument, TXmlEngElement)
    IMPORT_C voidBaseConstructL(const TDesC8 &, const TDesC8 &, RSenDocument, TXmlEngElement)
    Inherited Attributes
    CSenFragmentBase::iDocument
    CSenFragmentBase::iElement
    CSenFragmentBase::iState
    CSenFragmentBase::ipContentBuf
    CSenFragmentBase::ipContentWriteStream
    CSenFragmentBase::ipDelegate
    CSenFragmentBase::ipNamespaceArray
    CSenFragmentBase::ipOwner
    CSenFragmentBase::ipParser
    Inherited Functions
    CBase::CBase()
    CBase::Delete(CBase *)
    CBase::Extension_(TUint,TAny *&,TAny *)
    CBase::operator new(TUint)
    CBase::operator new(TUint,TAny *)
    CBase::operator new(TUint,TLeave)
    CBase::operator new(TUint,TLeave,TUint)
    CBase::operator new(TUint,TUint)
    CBase::~CBase()
    CSenFragmentBase::AddAttributesL(const RAttributeArray &)
    CSenFragmentBase::AddAttributesToElementL(TXmlEngElement,const RAttributeArray &)
    CSenFragmentBase::AddContentL(const TDesC8 &)
    CSenFragmentBase::AddNamespacesL()
    CSenFragmentBase::AsDocumentL()
    CSenFragmentBase::AsElementL()
    CSenFragmentBase::AsXmlL()
    CSenFragmentBase::AsXmlUnicodeL()
    CSenFragmentBase::BaseConstructL(TXmlEngElement &,RSenDocument &)
    CSenFragmentBase::BaseConstructL(const TDesC8 &)
    CSenFragmentBase::BaseConstructL(const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::BaseConstructL(const TDesC8 &,const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::BaseConstructL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const RAttributeArray &)
    CSenFragmentBase::BaseConstructL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const RAttributeArray &,TXmlEngElement &)
    CSenFragmentBase::BaseConstructL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const RAttributeArray &,TXmlEngElement &,RSenDocument &)
    CSenFragmentBase::BaseConstructL(const TXmlEngElement &)
    CSenFragmentBase::CSenFragmentBase()
    CSenFragmentBase::ConsistsOfL(CSenFragmentBase &)
    CSenFragmentBase::ConsistsOfL(TXmlEngElement &,TXmlEngElement &)
    CSenFragmentBase::ContentL()
    CSenFragmentBase::ContentOf(const TDesC8 &)
    CSenFragmentBase::ExtractElement()
    CSenFragmentBase::GetExtendedInterface(const TInt32)
    CSenFragmentBase::LocalName()const
    CSenFragmentBase::Namespace(const TDesC8 &)
    CSenFragmentBase::NewL(TXmlEngElement &,RSenDocument &)
    CSenFragmentBase::NewL(const TDesC8 &)
    CSenFragmentBase::NewL(const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::NewL(const TDesC8 &,const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::NewL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const RAttributeArray &)
    CSenFragmentBase::NewL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const RAttributeArray &,TXmlEngElement &)
    CSenFragmentBase::NewL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const RAttributeArray &,TXmlEngElement &,RSenDocument &)
    CSenFragmentBase::NewL(const TXmlEngElement &)
    CSenFragmentBase::NsPrefix()const
    CSenFragmentBase::NsUri()const
    CSenFragmentBase::OnContentL(const TDesC8 &,TInt)
    CSenFragmentBase::OnDelegateParsingL(CSenFragmentBase &)
    CSenFragmentBase::OnDelegateParsingL(const RTagInfo &,const RAttributeArray &,TInt)
    CSenFragmentBase::OnEndDocumentL(TInt)
    CSenFragmentBase::OnEndElementL(const RTagInfo &,TInt)
    CSenFragmentBase::OnEndPrefixMappingL(const RString &,TInt)
    CSenFragmentBase::OnError(TInt)
    CSenFragmentBase::OnIgnorableWhiteSpaceL(const TDesC8 &,TInt)
    CSenFragmentBase::OnProcessingInstructionL(const TDesC8 &,const TDesC8 &,TInt)
    CSenFragmentBase::OnResumeParsingFromL(const RTagInfo &,TInt)
    CSenFragmentBase::OnSkippedEntityL(const RString &,TInt)
    CSenFragmentBase::OnStartDocumentL(const RDocumentParameters &,TInt)
    CSenFragmentBase::OnStartElementL(const RTagInfo &,const RAttributeArray &,TInt)
    CSenFragmentBase::OnStartPrefixMappingL(const RString &,const RString &,TInt)
    CSenFragmentBase::OnWriteEndElementL(const RTagInfo &)
    CSenFragmentBase::OnWriteStartElementL(const RTagInfo &,const RAttributeArray &)
    CSenFragmentBase::RenameL(const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::RenameL(const TDesC8 &,const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::RenameLocalNameL(const TDesC8 &)
    CSenFragmentBase::RenameNamespaceL(const TDesC8 &)
    CSenFragmentBase::RenameNamespaceL(const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::RenamePrefixL(const TDesC8 &)
    CSenFragmentBase::ResetContentL()
    CSenFragmentBase::SetContentHandler(CSenFragmentBase &)
    CSenFragmentBase::SetContentL(const TDesC8 &)
    CSenFragmentBase::SetContentOfL(const TDesC8 &,const TDesC8 &)
    CSenFragmentBase::SetDocument(RSenDocument &)
    CSenFragmentBase::SetOwner(CSenFragmentBase &)
    CSenFragmentBase::StartSavingContent()
    CSenFragmentBase::WriteAsXMLToL(RWriteStream &)
    CSenFragmentBase::~CSenFragmentBase()

    Detailed Description

    CSenWsSecurityHeader represents security header functionality according to oasis web services security (WSS) specifications (2004/01)
    Since
    Series60 3.0

    Member Enumeration Documentation

    Enum TPasswordType

    PasswordType Enumeration

    EnumeratorValueDescription
    EText1
    EDigest

    Constructor & Destructor Documentation

    CSenWsSecurityHeader2 ( )

    IMPORT_CCSenWsSecurityHeader2()[protected]

    C++ default constructor

    ~CSenWsSecurityHeader2 ( )

    IMPORT_C~CSenWsSecurityHeader2()[virtual]

    Destructor.

    Member Function Documentation

    BaseConstructL ( RSenDocument, TXmlEngElement )

    IMPORT_C voidBaseConstructL(RSenDocumentaDocument,
    TXmlEngElementaElement
    )[protected]

    Basic BaseConstructL function

    BaseConstructL ( const TDesC8 &, RSenDocument, TXmlEngElement )

    IMPORT_C voidBaseConstructL(const TDesC8 &aData,
    RSenDocumentaDocument,
    TXmlEngElementaElement
    )[protected]
    From CSenBaseFragment Basic BaseConstructL function
    Since
    Series60 3.0
    ParameterDescription
    aDataData which will be used as current token (content) of this security header
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    BaseConstructL ( const TDesC8 &, const TDesC8 &, RSenDocument, TXmlEngElement )

    IMPORT_C voidBaseConstructL(const TDesC8 &aData,
    const TDesC8 &aSecurityNs,
    RSenDocumentaDocument,
    TXmlEngElementaElement
    )[protected]
    From CSenBaseFragment Basic BaseConstructL function
    Since
    Series60 3.0
    ParameterDescription
    aDataData which will be used as current token (content) of this security header
    aSecurityNsA namespace to be set to the header.
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    NewL ( RSenDocument, TXmlEngElement )

    IMPORT_C CSenWsSecurityHeader2 *NewL(RSenDocumentaDocument,
    TXmlEngElementaElement
    )[static]

    Basic constructor

    ParameterDescription
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    Returns: a pointer to new CSenWsSecurityHeader class instance.

    NewL ( const TDesC8 &, RSenDocument, TXmlEngElement )

    IMPORT_C CSenWsSecurityHeader2 *NewL(const TDesC8 &aData,
    RSenDocumentaDocument,
    TXmlEngElementaElement
    )[static]

    Basic constructor.

    ParameterDescription
    aDataData to be set as header's content.
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    Returns: a pointer to new CSenWsSecurityHeader class instance.

    NewL ( const TDesC8 &, const TDesC8 &, RSenDocument, TXmlEngElement )

    IMPORT_C CSenWsSecurityHeader2 *NewL(const TDesC8 &aData,
    const TDesC8 &aSecurityNs,
    RSenDocumentaDocument,
    TXmlEngElementaElement
    )[static]

    Basic constructor.

    ParameterDescription
    aDataData to be set as header's content.
    aSecurityNsA namespace to be set to the header.
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    Returns: a pointer to new CSenWsSecurityHeader class instance.

    NewLC ( RSenDocument, TXmlEngElement )

    IMPORT_C CSenWsSecurityHeader2 *NewLC(RSenDocumentaDocument,
    TXmlEngElementaElement
    )[static]

    Basic constructor.

    ParameterDescription
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    Returns: a new CSenWsSecurityHeader class instance, which pointer is left on cleanup stack.

    NewLC ( const TDesC8 &, RSenDocument, TXmlEngElement )

    IMPORT_C CSenWsSecurityHeader2 *NewLC(const TDesC8 &aData,
    RSenDocumentaDocument,
    TXmlEngElementaElement
    )[static]

    Basic constructor.

    ParameterDescription
    aDataData to be set as header's content.
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    Returns: a new CSenWsSecurityHeader class instance, which pointer is left on cleanup stack.

    NewLC ( const TDesC8 &, const TDesC8 &, RSenDocument, TXmlEngElement )

    IMPORT_C CSenWsSecurityHeader2 *NewLC(const TDesC8 &aData,
    const TDesC8 &aSecurityNs,
    RSenDocumentaDocument,
    TXmlEngElementaElement
    )[static]

    Basic constructor.

    ParameterDescription
    aDataData to be set as header's content.
    aSecurityNsA namespace to be set to the header.
    aDocumentThe document which will be the owner of the elements of this header
    aElementAn element which will be parent for this header.

    Returns: a new CSenWsSecurityHeader class instance, which pointer is left on cleanup stack.

    TimestampL ( const TDesC8 &, const TDesC8 &, HBufC8 *& )

    IMPORT_C TIntTimestampL(const TDesC8 &aCreated,
    const TDesC8 &aExpires,
    HBufC8 *&aTimestamp
    )[static]
    Constructs a timestamp.
    Since
    Series60 5.0 Format of the timestamp is as follows: <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Created>2001-09-13T08:42:00Z</wsu:Created> <wsu:Expires>2002-09-13T08:42:00Z</wsu:Expires> </wsu:Timestamp> The wsu namespace is declared inside this element. Based on chapter 10 from WS-Security 2004
    ParameterDescription
    aCreated- creation time of token
    aExpires- end of validation time for token
    aTimestamp- a pointer to buffer containing the timestamp. Does not return NULL. Ownership is transferred to the caller.

    Returns: KErrNone or some system-wide Symbian error code.

    TimestampL ( const TDesC8 &, HBufC8 *& )

    IMPORT_C TIntTimestampL(const TDesC8 &aCreated,
    HBufC8 *&aTimestamp
    )[static]
    Constructs a timestamp.
    Since
    Series60 5.0 Format of the timestamp is as follows: <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Created>2001-09-13T08:42:00Z</wsu:Created> </wsu:Timestamp> The wsu namespace is declared inside this element. Based on chapter 10 from WS-Security 2004
    ParameterDescription
    aCreated- creation time of token
    aTimestamp- a pointer to buffer containing the timestamp. Does not return NULL. Ownership is transferred to the caller.

    Returns: KErrNone or some system-wide Symbian error code.

    UsernameTokenL ( CSenIdentityProvider & )

    IMPORT_C HBufC8 *UsernameTokenL(CSenIdentityProvider &aIdentityProvider)
    Constructs a username token.
    Since
    Series60 3.0
    <wsse:UsernameToken> <wsse:Username> username </wsse:Username> </wsse:UsernameToken>"

    The above token assumes, that wsse namespace is declared in top level of the security header.

    ParameterDescription
    aIdentityProviderIdentity provider which is used to get the authorization ID used in username token. Method takes the AuthzID out from aIdentityProvider, and uses it as username for this token. Format of the token is as follows:

    Returns: a pointer to buffer containing the username token. Does not return NULL. Ownership is transferred to the caller. Method leaves with value KErrNotSupported, if a password type is not supported.

    UsernameTokenL ( CSenIdentityProvider &, CSenWsSecurityHeader2::TPasswordType )

    IMPORT_C HBufC8 *UsernameTokenL(CSenIdentityProvider &aIdentityProvider,
    CSenWsSecurityHeader2::TPasswordTypeaType
    )
    Constructs a username token.
    Since
    Series60 3.0
    Format of the token is as follows (if password type is wsse:PasswordText):

    <wsse:UsernameToken> <wsse:Username> username </wsse:Username> <wsse:Password> password </wsse:Password> </wsse:UsernameToken>"

    If the password type is wsse:Password:Digest, then the password element will be declared as follows:

    <wsse:Password Type="wsse:PasswordDigest">

    The above token assumes, that wsse namespace is declared in top level of the security header.

    ParameterDescription
    aIdentityProviderIdentity provider which is used to get the authorization ID used in username token. Method takes the AuthzID out from aIdentityProvider, and uses it as username for this token. Password is also fetched from aIdentityProvider via calling Password() getter, which must return a Base64 [XML-Schema] encoded, SHA-1 hash value, of the UTF8 encoded password.
    aTypeSpecifies the type of the password, either wsse:PasswordText or wsse:PasswordDigest

    Returns: a pointer to buffer containing the username token. Does not return NULL. Ownership is transferred to the caller. Method leaves with value KErrNotSupported, if a password type is not supported.

    UsernameTokenL ( const TDesC8 &, HBufC8 *& )

    IMPORT_C TIntUsernameTokenL(const TDesC8 &aUsername,
    HBufC8 *&aToken
    )[static]
    Constructs a username token. This method does not add the <Password> element, since it is optional for basic username tokens.
    Since
    Series60 3.0
    ParameterDescription
    aUsernameUser name which is used in the username token.
    aTokenRef-to-pointer where the token will be allocated. Shouldn't contain any data when called, or that data will be lost.

    Returns: KErrNone or some system-wide Symbian error code.

    UsernameTokenL ( const TDesC8 &, const TDesC8 &, HBufC8 *& )

    IMPORT_C TIntUsernameTokenL(const TDesC8 &aUsername,
    const TDesC8 &aPassword,
    HBufC8 *&aToken
    )[static]
    Constructs a username token using a password, too.
    Since
    Series60 5.0
    ParameterDescription
    aUsernameUser name which is to be used in new token.
    aPasswordPassword which is to be use in new token. The type will be set to default: wsse:PasswordDigest, defined in KSecurityAttrTypeText. This is a Base64 [XML-Schema] encoded, SHA-1 hash value, of the UTF8 encoded password.
    aTokenRef-to-pointer in which the token will be allocated. Shouldn't contain any data when called, or that data will be lost.

    Returns: KErrNone or some system-wide Symbian error code.

    UsernameTokenL ( const TDesC8 &, const TDesC8 &, CSenWsSecurityHeader2::TPasswordType, HBufC8 *& )

    IMPORT_C TIntUsernameTokenL(const TDesC8 &aUsername,
    const TDesC8 &aPassword,
    CSenWsSecurityHeader2::TPasswordTypeaType,
    HBufC8 *&aToken
    )[static]
    Constructs a username token using a password, too.
    Since
    Series60 5.0
    <wsse:UsernameToken> <wsse:Username> username </wsse:Username> <wsse:Password Type="wsse:PasswordDigest"> password </wsse:Password> </wsse:UsernameToken>"

    ParameterDescription
    aUsernameUser name which is to be used in new token.
    aPasswordPassword which is to be use in new token This is a Base64 [XML-Schema] encoded, SHA-1 hash value, of the UTF8 encoded password.
    aTypeSpecifies the type of the password:EText, being default refers to wsse:PasswordText, but this method does not add this, since it can be omitted.EDigest: will add wsse:PasswordDigest attribute to the <Password> -element, as in here:
    aTokenRef-to-pointer where the token will be allocated. Shouldn't contain any data when called, or that data will be lost.

    Returns: KErrNone or some system-wide Symbian error code.

    XmlNs ( )

    IMPORT_C TPtrC8XmlNs()[virtual]
    Constructs a security token reference.
    Since
    Series60 5.0 Format of the token reference is as follows: <wsse:SecurityTokenReference wsu:Id="..."> <wsse:Reference URI="..."/> </wsse:SecurityTokenReference>
    The above token assumes, that wsse namespace is declared in top level of the security header.
    Since
    Series60 3.0

    Returns: KErrNone or some system-wide Symbian error code. Basic getter for XML namespace of the WS security header. Subclasses should override this to use different namespace the WS security header namespace as string

    XmlNsPrefix ( )

    IMPORT_C TPtrC8XmlNsPrefix()[virtual]
    Basic getter for XML namespace prefix of the WS security header. Subclasses should override this to use different namespace prefix
    Since
    Series60 3.0

    Returns: the WS security header namespace prefix as string