webservices/idwsfplugin/src/idwsfsecurityheader.cpp
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/idwsfplugin/src/idwsfsecurityheader.cpp	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:        
+*
+*/
+
+
+
+
+
+
+
+
+// INCLUDE FILES
+#include <SenIdentityProvider.h>
+
+#include "idwsfsecurityheader.h"
+
+namespace
+    {
+    _LIT8(KNameTokenFormatString8,
+        "<%S:UsernameToken><%S:Username>%S</%S:Username></%S:UsernameToken>");
+    // NEW 1.0:
+    //_LIT8(KSecurityXmlns8,
+    //  "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-utility-1.0.xsd");
+    //_LIT8(KSecurityXmlnsPrefix8, "wsu");
+
+    // DRAFT:
+    //_LIT8(KSecurityXmlns8,
+    //  "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd");
+    //_LIT8(KSecurityXmlnsPrefix8, "wsse");
+
+    // AOL demo:
+    //_LIT8(KSecurityXmlns8, "http://schemas.xmlsoap.org/ws/2003/06/secext");
+    _LIT8(KSecurityXmlnsPrefix8, "wsse");
+
+    }
+
+
+CIdWsfSecurityHeader* CIdWsfSecurityHeader::NewL()
+    {
+    CIdWsfSecurityHeader* pNew = new (ELeave) CIdWsfSecurityHeader;
+    CleanupStack::PushL(pNew);
+    pNew->BaseConstructL();
+    CleanupStack::Pop(); // pNew;
+    return pNew;
+    }
+
+CIdWsfSecurityHeader* CIdWsfSecurityHeader::NewL(const TDesC8& aData)
+    {
+    CIdWsfSecurityHeader* pNew = new (ELeave) CIdWsfSecurityHeader;
+    CleanupStack::PushL(pNew);
+    pNew->BaseConstructL(aData);
+    CleanupStack::Pop(); // pNew;
+    return pNew;
+    }
+
+CIdWsfSecurityHeader::CIdWsfSecurityHeader()
+    {
+    }
+
+CIdWsfSecurityHeader::~CIdWsfSecurityHeader()
+    {
+    }
+
+HBufC8* CIdWsfSecurityHeader::UsernameToken8L(
+                                CSenIdentityProvider &aIdentityProvider)
+    {
+    TPtrC8 nsPrefix = KSecurityDraftXmlnsPrefix();
+    TPtrC8 username = aIdentityProvider.AuthzID();
+    HBufC8* pToken = HBufC8::NewLC(50+KNameTokenFormatString8().Length()+
+        username.Length() + nsPrefix.Length()*4);	//CodeScannerWarnings
+    TPtr8 ptr = pToken->Des();
+    ptr.Format(KNameTokenFormatString8, &nsPrefix, &nsPrefix, &username,
+        &nsPrefix, &nsPrefix);
+    CleanupStack::Pop(pToken);    // pToken
+    return pToken;
+    }
+
+TPtrC8 CIdWsfSecurityHeader::XmlNs()
+    {
+    return KSecurityDraftXmlns();
+    }
+
+TPtrC8 CIdWsfSecurityHeader::XmlNsPrefix()
+    {
+    return KSecurityDraftXmlnsPrefix();
+    }
+
+
+TInt CIdWsfSecurityHeader::UsernameTokenL(const TDesC8& aUsername,
+                                                   HBufC8*& aToken)
+    {
+    TPtrC8 nsPrefix = KSecurityXmlnsPrefix8();
+    aToken = HBufC8::NewLC(KNameTokenFormatString8().Length()
+        + aUsername.Length() + nsPrefix.Length()*4);
+    TPtr8 ptr = aToken->Des();
+    ptr.Format(KNameTokenFormatString8, &nsPrefix, &nsPrefix, &aUsername,
+        &nsPrefix, &nsPrefix);
+    CleanupStack::Pop(aToken);    // aToken CodeScannerWarnings
+    return KErrNone;
+    }