Avatar billede vonflip Nybegynder
28. juni 2007 - 13:26 Der er 9 kommentarer

Sign SOAP message

Ved kald med min webserviceklient får jeg følgende fejl

System.Web.Services.Protocols.SoapException: SOAP request is not signed

Klienten er genereret med WSDL2java, og der benyttes jdk 1.4.2

Jeg har modtaget et sikkerhedscertifikat fra webserviceudbyderen, og installeret det i cacerts filen

Hvordan får jeg signet mit soap request?
Avatar billede arne_v Ekspert
28. juni 2007 - 13:53 #1
Snakker vi HTTPS eller om WSS.

Jeg synes at fejl teksten antyder det sidste.
Avatar billede vonflip Nybegynder
28. juni 2007 - 14:56 #2
Der benyttes WS-Security
Avatar billede arne_v Ekspert
01. juli 2007 - 02:47 #3
Axis eller Axis2 ?
Avatar billede vonflip Nybegynder
02. juli 2007 - 08:01 #4
Der benyttes Axis.
Avatar billede arne_v Ekspert
03. juli 2007 - 01:38 #5
Den kommer med eksempler på det.

Kig i samples/security directory.
Avatar billede arne_v Ekspert
03. juli 2007 - 01:41 #6
Client.java og SignedSoapEnvelope.java - jeg har også et andet client eksempel
det bruger SignedSoapEnvelope, hvis det skulle have interesse.
Avatar billede vonflip Nybegynder
03. juli 2007 - 09:06 #7
Hvor er det lige at jeg finder samples/security dir ?
Avatar billede arne_v Ekspert
03. juli 2007 - 12:34 #8
I Axis dir - der hvor du har udpakket Axis zip filen.

(har du faaet Axis sammen med en app server kan du hente Axis zip fra Apache)
Avatar billede vonflip Nybegynder
05. juli 2007 - 11:57 #9
Så har jeg fået set på det. og har så en række spørgsmål.

Den kode der er i Client.java kan vel implementeres i min stub. Jeg har forsøgt noget af koden fra SignedSoapEnvelope, men min private key er null

KeyStore ks = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream("D:\\jdk\\jre\\lib\\security\\cacerts");
ks.load(fis, "changeit".toCharArray());
X509Certificate cert = (X509Certificate) ks.getCertificate("myAlias");
PublicKey key = cert.getPublicKey();
PrivateKey privateKey = (PrivateKey) ks.getKey("myAlias", "keyPass".toCharArray());

Da jeg loadede sikkerhedscertifikatet i cacerts, angav jeg selv alias samt password.
Er det forkert at benytte cacerts?

Det certifikat jeg skal sende er "raw bytes from the public part of a X509Certificate", så jeg behøver måske ikke privatekey ?
er signeringen base64 encoded?

Jeg får stadig samme fejl, men skal lige have checket at soap delen bliver udfyldt rigtigt. Hvis du har en "soap for dummies" vil det være interessant, ellers vil jeg starte med api'et.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester