WebService 加 Token 到header中

Axis WebService的客戶端調WebService, 但是現在需要加一個UserNameToken.就是需要在Soap包裏面加上一個頭.需要加的內容如下(應該是用wss4j這個包來完成的):

  <soapenv:Header>

    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

      <wsse:UsernameToken>

        <wsse:Username>aaa</wsse:Username>

        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">aaaaa</wsse:Password>

      </wsse:UsernameToken>

    </wsse:Security>

  </soapenv:Header>

 

public void setSoapHeader(){

     try{

            org.apache.axis.message.SOAPHeaderElement soapHeaderElement;   

      soapHeaderElement = new org.apache.axis.message.SOAPHeaderElement("wsse","Security");

      soapHeaderElement.setMustUnderstand(true);

      soapHeaderElement.setNamespaceURI("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

      SOAPElement token = soapHeaderElement.addChildElement("UsernameToken");

      SOAPElement userName = token.addChildElement("Username","wsse","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

      userName.setValue("username");

      SOAPElement password = token.addChildElement("Password","wsse","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

      password.setValue("password");

      _call.addHeader(soapHeaderElement);

     }catch(Exception err){

      err.printStackTrace();

     }

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章