crear un sobre de jabón con encabezado de seguridad en Android usando ksoap2

Quiero crear un sobre de jabón con un encabezado de seguridad en Android usando ksoap2. Mi código de android es como ...

import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.kxml2.kdom.Element;
import org.kxml2.kdom.Node;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SOP_WebService extends Activity
{

    private final String NAMESPACE = "http://xmlns.oracle.com/WorklistRetrival";
    private final String URL = "http://www.sample.com/orabpel/default/WorklistRetrival/1.0";
    private final String SOAP_ACTION = "process";
    private final String METHOD_NAME = "WorklistRetrievalREQ";  

    public void onCreate(Bundle savedInstanceState) 
    {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.soap_webservice);

         Button btnClick = (Button) findViewById(R.id.btnClick);
         btnClick.setOnClickListener(new OnClickListener()
         {
            @Override
            public void onClick(View v) 
            {
                callWebservice();
            }
        });
    }

    public void callWebservice()
    {

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        PropertyInfo pi = new PropertyInfo();
        pi.setNamespace(NAMESPACE);
        pi.setName("WorklistType"); 
        pi.setValue("PO_REQUISITION"); 
        request.addProperty(pi);

        PropertyInfo p2 = new PropertyInfo();
        p2.setNamespace(NAMESPACE);
        p2.setName("Status"); 
        p2.setValue("TODO"); 
        request.addProperty(p2);

        PropertyInfo p3 = new PropertyInfo();
        p3.setNamespace(NAMESPACE);
        p3.setName("Mode"); 
        p3.setValue(""); 
        request.addProperty(p3);


         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        Log.i("bodyout", "" + envelope.bodyOut.toString());

        try 
        {
            androidHttpTransport.debug = true;
            androidHttpTransport.call(SOAP_ACTION, envelope);
            SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
            Log.i("myApp", response.toString());
            Log.i("request", "" + envelope.bodyIn);
            Log.i("response", "" + envelope.bodyOut);
            Log.i("request", "" + androidHttpTransport.requestDump);
            Log.i("response", "" + androidHttpTransport.responseDump);
        } 
        catch (SoapFault e)
        {
            Log.d("soapFault", "soapFault");
            e.printStackTrace();
        }
        catch (Exception e) 
        {
            Log.d("Exception", "Exception");
            e.printStackTrace();
            Log.d("Exception Generated", ""+e.getMessage());
        }

    }

}

Y por encima del código crear debajo de la solicitud de jabón sin encabezado de seguridad.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <soap:Header>
    </soap:Header>
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/bpel/aubi/mobile/Worklist">
        <ns1:WorklistRetrievalREQ>
            <ns1:WorklistType>HR_OFFER</ns1:WorklistType>
            <ns1:Status>TODO</ns1:Status>
            <ns1:Mode/>
        </ns1:WorklistRetrievalREQ>
    </soap:Body>
</soap:Envelope>

Pero necesito crear debajo de la solicitud de jabón con encabezado de seguridad

<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

    <soap:Header>
        <wsse:Security 
            xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
            xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
            xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" soap:mustUnderstand="1">
                <wsse:UsernameToken 
                    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
                    xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                            <wsse:Username>cbrown</wsse:Username>
                            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">welcome</wsse:Password></wsse:UsernameToken>
        </wsse:Security>
    </soap:Header>
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/bpel/aubi/mobile/Worklist">
        <ns1:WorklistRetrievalREQ>
            <ns1:WorklistType>HR_OFFER</ns1:WorklistType>
            <ns1:Status>TODO</ns1:Status>
            <ns1:Mode/>
        </ns1:WorklistRetrievalREQ>
    </soap:Body>
</soap:Envelope>

Por favor, dime qué tipo de cambio se realiza en este código

Respuestas a la pregunta(2)

Su respuesta a la pregunta