2009-08-24 8 views
5

Używam usługi WWW, która umieszcza token uwierzytelniania w nagłówku koperty SOAP. Pojawia się (poprzez przeglądanie próbek dostarczonych z WS WSL), że jeśli kod pośredniczący jest generowany w .NET, ta informacja nagłówkowa jest odsłonięta przez zmienną składową w klasie pośredniej. Jednak podczas generowania mojego kodu pośredniczącego java Axis2 przy użyciu WSDL2Java nie wydaje się być nigdzie narażone.Informacje o nagłówku obwiedni Axis2 SOAP

Jaki jest poprawny sposób wyodrębnienia tych informacji z nagłówka koperty SOAP?

WSDL: http://www.vbar.com/zangelo/SecurityService.wsdl

C# próbki:


using System; 
using SignInSample.Security;   // web service 
using SignInSample.Document;   // web service 

namespace SignInSample 
{ 
    class SignInSampleClass 
    { 
     [STAThread] 
     static void Main(string[] args) 
     { 
      // login to the Vault and set up the document service 
      SecurityService secSvc = new SecurityService(); 
      secSvc.Url = "http://localhost/AutodeskDM/Services/SecurityService.asmx"; 
      secSvc.SecurityHeaderValue = new SignInSample.Security.SecurityHeader(); 

      secSvc.SignIn("Administrator", "", "Vault"); 

      DocumentServiceWse docSvc = new DocumentServiceWse(); 
      docSvc.Url = "http://localhost/AutodeskDM/Services/DocumentService.asmx"; 
      docSvc.SecurityHeaderValue = new SignInSample.Document.SecurityHeader(); 
      docSvc.SecurityHeaderValue.Ticket = secSvc.SecurityHeaderValue.Ticket; 
      docSvc.SecurityHeaderValue.UserId = secSvc.SecurityHeaderValue.UserId; 
     } 
    } 
} 

Próbka ilustruje to, co chciałbym robić. Zauważ, że instancja secSvc ma zmienną składową SecurityHeaderValue zapełnioną po pomyślnym wywołaniu secSvc.SignIn().

Oto niektóre odpowiednią dokumentację API dotyczące sposobu SignIn:

Chociaż nie ma wartości powrotu, udany wejść będzie zapełnić SecurityHeaderValue służby bezpieczeństwa. Informacje SecurityHeaderValue są następnie wykorzystywane do innych wywołań usług WWW.
+0

można dać przykład, pisać WSDL, nic konkretnego? – skaffman

+0

Mam ten sam problem – LiorH

Odpowiedz

1

wierzę wywołanie szukasz jest:

MessageContext.getCurrentMessageContext().getEnvelope().getHeader()