Skip to Content.
Sympa Menu

perfsonar-dev - perfsonar: r2303 - branches/as/src/org/perfsonar/client/testHarness

Subject: perfsonar development work

List archive

perfsonar: r2303 - branches/as/src/org/perfsonar/client/testHarness


Chronological Thread 
  • From:
  • To:
  • Subject: perfsonar: r2303 - branches/as/src/org/perfsonar/client/testHarness
  • Date: Wed, 28 Mar 2007 08:52:20 -0400

Author: rodriguez
Date: 2007-03-28 08:52:19 -0400 (Wed, 28 Mar 2007)
New Revision: 2303

Modified:
branches/as/src/org/perfsonar/client/testHarness/SOAPX509Client.java
Log:
Output response wasn't right

Modified: branches/as/src/org/perfsonar/client/testHarness/SOAPX509Client.java
===================================================================
--- branches/as/src/org/perfsonar/client/testHarness/SOAPX509Client.java
2007-03-28 12:30:32 UTC (rev 2302)
+++ branches/as/src/org/perfsonar/client/testHarness/SOAPX509Client.java
2007-03-28 12:52:19 UTC (rev 2303)
@@ -47,7 +47,7 @@
import org.perfsonar.commons.auxiliary.components.authn.WSSecX509Token;

/**
- * Class which provides the basic web service (Doc/Lit) client capability
+ * Class which provides the basic web service (Doc/Lit) client capability
* without stubs but including the possibility of sending the X.509
* certificate security token.
*
@@ -81,12 +81,12 @@
System.out.println("Response file: " + outputFile);
System.out.println("Private key file: " + keyFile);
System.out.println("Certificate file: " + certFile);
-
+
// read the certificate... more or less...
System.out.println("// read the certificate... more or less...");
- InputStream isCert=new FileInputStream(certFile);
+ InputStream isCert=new FileInputStream(certFile);

- // prepare to call - set service elements
+ // prepare to call - set service elements
System.out.println("// prepare to call - set service elements");
Service service = new Service();
Call call = (Call)service.createCall();
@@ -101,10 +101,10 @@

DocumentBuilder builder = factory.newDocumentBuilder();
request = builder.parse(new File(inputFile));
-
+
// build a SOAPBodyElement from the document
System.out.println("// build a SOAPBodyElement from the
document");
- SOAPBodyElement requestMessage =
+ SOAPBodyElement requestMessage =
new SOAPBodyElement(request.getDocumentElement());
SOAPEnvelope envelope = new SOAPEnvelope();
envelope.addBodyElement(requestMessage);
@@ -114,7 +114,7 @@
// add the security provider
BouncyCastleProvider bcp = new BouncyCastleProvider();
java.security.Security.addProvider((Provider)bcp);
-
+
Crypto crypto = new DynamicCrypto();
KeyStore ks=crypto.getKeyStore();

@@ -129,19 +129,19 @@
}
in.close();
System.out.println("Private key:\n"+data);
-
+
byte[] bytes=Base64.decode(data);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
X509Certificate cert=crypto.loadCertificate(isCert);
ks.setKeyEntry("xmlsec", (Key)privateKey,
"security".toCharArray(), new Certificate[]{(Certificate)cert});
-
+
WSSecSignature sec509 = new WSSecSignature();
sec509.setUserInfo("xmlsec", "security");
SOAPConstants soapConstants =
WSSecurityUtil.getSOAPConstants(envelope.getAsDOM());
Vector parts = new Vector();
-
+
/*
* Set up to sign body and use STRTransorm to sign
* the signature token (e.g. X.509 certificate)
@@ -159,15 +159,17 @@
"Content");
parts.add(encP);

- sec509.setParts(parts);
+ sec509.setParts(parts);
sec509.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
-
+
Document doc = envelope.getAsDocument();
WSSecHeader secHeader = new WSSecHeader();
secHeader.setMustUnderstand(false);
secHeader.insertSecurityHeader(doc);
+ System.out.println("// Signing the message");
Document signedDoc = sec509.build(doc, crypto, secHeader);
-
+ System.out.println("// Signed the message");
+
/* Document doc = envelope.getAsDocument();
WSSecHeader secHeader = new WSSecHeader();
secHeader.setMustUnderstand(false);
@@ -176,25 +178,26 @@
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)
cf.generateCertificate(isCert);
sec509.build(doc, cert, secHeader); */
-
+
Message signedMsg = (Message) SOAPUtil.toSOAPMessage(signedDoc);
envelope = signedMsg.getSOAPEnvelope();
-
+
+ System.out.println("Saving SOAP message");
saveSOAPMessage(envelope.getAsDocument(), inputFile);
-
+
// get a timestamp.
System.out.println("// get a timestamp.");
- double startTime =
+ double startTime =
new Long(System.currentTimeMillis()).doubleValue();
-
- // call on the end point
+
+ // call on the end point
System.out.println("// call on the end point");
Object resultObject = call.invoke(envelope);
-
+
// get another timestamp
- double endTime =
+ double endTime =
new Long(System.currentTimeMillis()).doubleValue();
-
+
// result object is a vector - strange!!! But this is how the
world works :-D
// we will now extract the result from the vector
System.out.println("// result object is a vector - strange!!!");
@@ -205,11 +208,11 @@

envelopeResult= (SOAPEnvelope)resultObject;
saveSOAPMessage(envelopeResult.getAsDocument(), outputFile);
- resultSBE= envelope.getFirstBody();
+ resultSBE= envelopeResult.getFirstBody();

- // change it to document - here is where validity
+ // change it to document - here is where validity
// can be checked..
- result = resultSBE.getAsDocument();
+ result = resultSBE.getAsDocument();

// output it to a file
File response = new File(outputFile);
@@ -219,7 +222,7 @@
format.setIndent(4);
format.setIndenting(true);
format.setLineSeparator("\n");
-
+
XMLSerializer serial = new XMLSerializer(outWriter, format );
serial.asDOMSerializer();
serial.serialize( result.getDocumentElement() );



  • perfsonar: r2303 - branches/as/src/org/perfsonar/client/testHarness, svnlog, 03/28/2007

Archive powered by MHonArc 2.6.16.

Top of Page