• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Liutauras Vilda
  • Ron McLeod
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Saloon Keepers:
  • Scott Selikoff
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
  • Frits Walraven
Bartenders:
  • Stephan van Hulst
  • Carey Brown

Sign soap header with handler in WebSphere 6.1

 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

I need to sign an soap message with a handler in WebSphere. The webservices were build with JAX-RPC, anyone can help me.
I want to sign the response in the method handleResponse, anyone can write me an example code?

This is my handler:

public class ServerPeticionSincronaHandler extends GenericHandler {

static private Log4SMLogger logger = Log4SMLogger.getLogger(ServerPeticionSincronaHandler.class);
private HandlerInfo hi;

public ServerPeticionSincronaHandler() {
}

public void init(HandlerInfo info) {
hi = info;
}

public QName[] getHeaders() {
return hi.getHeaders();
}

public boolean handleRequest(MessageContext context) {
logger.info("ServerHandler: In handleRequest");
logMessage(context, "REQUEST : ", System.out);

try {
// Decompse the SOAP message
SOAPMessageContext smc = (SOAPMessageContext) context;
SOAPMessage msg = smc.getMessage();
SOAPPart sp = msg.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
String strSOAPEnvelope = se.toString();
SOAPHeader sh = se.getHeader();
// If there are SOAP Headers, write them to the console
if (sh != null) {
Iterator headers = sh.examineAllHeaderElements();
while (headers.hasNext()) {
SOAPHeaderElement he = (SOAPHeaderElement) headers.next();
logger.info("header element name is " + he.getElementName().getQualifiedName());
logger.info("header element value is " + he.getValue());
}
}
// Log the SOAP Request into a file
StringBuffer logStr = new StringBuffer();
logStr.append("SOAP Request: " + new Date().toString() + " :\r\n");
logStr.append(strSOAPEnvelope);
logStr.append("\r\n");
logMessage(context, logStr.toString(), System.out);
return true;
} catch (Exception e) {
logger.error(e);
return false;
}


}

public boolean handleResponse(MessageContext context) {
logger.info("ServerHandler: In handleResponse");
logMessage(context, "RESPONSE: ", System.out);
logger.info("Entered LogHandlerWithHeaders handleResponse ...");
try {
SOAPMessageContext msgContext = (SOAPMessageContext) context;
SOAPMessage msg = msgContext.getMessage();
SOAPPart sp = msg.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
// String strSOAPEnvelope = se.toString();
SOAPHeader sh = se.getHeader();
// Test to see if there is any SOAP Headers, if not add one
if (sh == null) {
sh = se.addHeader();

}
// Add name/value pair to the SOAP Header

// Get the modified SOAP Enveloper
SOAPEnvelope seAfter = sp.getEnvelope();
String strSOAPEnvelopeAfter = seAfter.toString();
// Output the SOAP response to a file
StringBuffer logStr = new StringBuffer();
logStr.append("SOAP Response: " + new Date().toString() + " :\r\n");
logStr.append(strSOAPEnvelopeAfter);
logStr.append("\r\n");
logMessage(context, logStr.toString(), System.out);
return true;
} catch (Exception e) {
logger.error(e);
return false;
}
}
}
 
Sebastian Martin de la Torre
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I want a soap message like that:

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<ds:Reference URI="#MsgBody">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>XXX</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
XXX
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
XXXX
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
XXXX
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature>

</soapenv:Header>
<soapenv:Body Id="MsgBody">
<Respuesta xmlns="XXX">
<Atributos>
<IdPeticion>1</IdPeticion>
</Atributos>
</Respuesta>
</soapenv:Body>
</soapenv:Envelope>
 
First, you drop a couch from the plane, THEN you surf it. Here, take this tiny ad with you:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic