1
10
11import java.io.FileInputStream;
12import java.io.FileOutputStream;
13import org.w3c.dom.Document;
14import java.security.PrivateKey;
15import java.security.cert.X509Certificate;
16
17import com.verisign.xmlsig.Signer;
18import com.verisign.xmlsig.VerifyingKey;
19import com.verisign.xmlsig.VerifyingKeyFactory;
20import com.verisign.messaging.WSSecurity;
21import com.verisign.messaging.MessageValidity;
22import com.verisign.xpath.XPath;
23import org.xmltrustcenter.verifier.TrustVerifier;
24import org.xmltrustcenter.verifier.X509TrustVerifier;
25
26public class WSSProcess {
27 public static void main(String[] args) throws Exception {
28 if (args.length < 1){
29 System.out.println("Usage:: java WSSProcess <inp-file>");
30 return;
31 }
32 String datafile = args[0];
33
34 String keystore = "my.keystore";
36 String storepass = "changeit";
37 String kstype = "JCEKS";
38 String alias2 = "rsakey";
39
40 System.out.println("Processing SOAP data in file \"" + datafile + "\"");
41 System.out.println("Using public key in keystore \"" + keystore + "\" ...");
42
43 FileInputStream fis = new FileInputStream(keystore);
45 java.security.KeyStore ks = java.security.KeyStore.getInstance(kstype);
46 ks.load(fis, storepass.toCharArray());
47 PrivateKey prvk2 = (PrivateKey)ks.getKey(alias2, storepass.toCharArray());
48
49 Document doc = XmlUtility.readXML(datafile);
51 TrustVerifier verifier = new X509TrustVerifier(ks);
52
53 WSSecurity wss = new WSSecurity();
54 MessageValidity[] resa = wss.verifyAndDecrypt(doc, verifier, null, prvk2, null);
55
56 for (int i = 0; i < resa.length; i++){
57 System.out.println("resa[" + i + "].isValid() = " + resa[i].isValid());
58 Document doc1 = resa[i].getDocument();
59 WSSecurityExtn.removeWSSInfo(doc1);
60 XmlUtility.writeXML(doc1, System.out);
61 }
62 }
63}