Potrzebuje wygenerować z poziomu programu w javie wsse security header i dodać go do pliku request.xml.
Plik xml generowany jest tak:
Cześć body:
File registerSubscriberRequestFile = new File(registerSubscriberRequestFileName);
writeToFile(ClassLoader.getSystemResourceAsStream("request.xml"), registerSubscriberRequestFile);
SAXBuilder builder = new SAXBuilder();
Document registerRequest = builder.build(registerSubscriberRequestFile);
Element body = (Element) registerRequest.getRootElement().getChildren().get(1);
Element registerRequestElement = new Element("registerRequest", NS_SUBSCRIBER_REGISTER_WS_SCHEMA);
(bla bla bla nieistotne)
body.addContent(registerRequestElement);
saveRequestFile(registerSubscriberRequestFile, registerRequest);
Natomiast zapytanie do servera wysyłane jest poprzez metody PostMethod i HttpClient
W soapUI ustawiam username/password i passwordType na PasswordDigest i request wysyła się prawidłowo (na PasswordText nie działa), w związku z tym wiem ze w wysyłanym requeście potrzebuje pełną formę, tj coś w stylu:
<wsse:UsernameToken>
<wsse:Username>scott</wsse:Username>
<wsse:Password Type="wsse:PasswordDigest">
KE6QugOpkPyT3Eo0SEgT30W4Keg=</wsse:Password>
<wsse:Nonce>5uW4ABku/m6/S5rnE+L7vg==</wsse:Nonce>
<wsu:Created xmlns:wsu=
"http://schemas.xmlsoap.org/ws/2002/07/utility">
2002-08-19T00:44:02Z
</wsu:Created>
</wsse:UsernameToken>
Jak to uzyskać z poziomu javy? Czy są już istniejące metody, czy będę się musiała pobawić w napisanie własnych metod na szyfrowanie itp?