FYI

On Tuesday, September 23, 2014, Anupam Nandan <[email protected]>
wrote:

> Hello
>
> Can some one please help me on this ?
>
> Thank you!
>
> On Sunday, September 21, 2014, Anupam Nandan <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
>> Hi All,
>>
>> I am trying to write a java client program (servlet), which will generate
>> and sign the SOAP request with the keys provided by thrid party
>> (keystore.jks). When I deploy the Servlet on tomcat it just works fine. But
>> on web sphere 8.5 I am getting "*RSA signature is not verified*" . I
>> tried debugging the issue but not sure what is going wrong.
>>
>> I tried finding answer online and added IS_BSP_COMPLIANT as false but
>> didnt help.
>>
>> Most likely the issue is with signature. Let me know how I can trouble
>> this issue. Any suggestion would be very helpful.
>>
>>
>> Thank you for your time and looking forward for some guidance.
>>
>> Code
>>
>>
>> --------------------------------------------------------------------------------------------------------------------------------
>>
>> attstmt.getAttributes().add(attr);
>>
>> assertion.getAttributeStatements().add(attstmt);
>>
>>  AssertionWrapper assertionWrper = new AssertionWrapper(assertion);
>>
>> WSSecSAMLToken samlToken = new WSSecSAMLToken();
>>
>> samlToken.build(soapDocument, assertionWrper, header);
>>
>>  SoapMessageWithoutHeader = nodeToString(soapDocument);
>>
>> System.out.println("Anupam SOAP Message with SAML 2.0 Assertion :
>> "+SoapMessageWithoutHeader);
>>
>>  // Inserting the wsu:Timestamp
>>
>>
>> WSSecTimestamp timestamp = new WSSecTimestamp();
>>
>> timestamp.setTimeToLive(TIMESTAMP_VALIDATE_PERIOD);
>>
>>
>> WSSecHeader timestampHeader = new WSSecHeader();
>>
>> timestampHeader.insertSecurityHeader(soapDocument);
>>
>> timestamp.build(soapDocument, timestampHeader);
>>
>>  SoapMessageWithoutHeader = nodeToString(soapDocument);
>>
>> System.out.println("Anupam SOAP Message with time stamp :
>> "+SoapMessageWithoutHeader);
>>
>>  System.out.println("Anupam path to key store "+pathtoKeyStore);
>>
>>  WSSecSignature builder = new WSSecSignature();
>>
>> builder.setUserInfo(keyAlias, pwdValue);
>>
>> builder.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
>>
>>   java.util.Properties prop = new java.util.Properties();
>>
>>
>> *prop.setProperty("org.apache.ws.security.crypto.provider",
>> "org.apache.ws.security.components.crypto.Merlin");*
>>
>> * prop.setProperty("org.apache.ws.security.crypto.merlin.keystore.type",
>> "jks");*
>>
>> *
>> prop.setProperty("org.apache.ws.security.crypto.merlin.keystore.base64.encoded",
>> "false");*
>>
>> *
>> prop.setProperty("org.apache.ws.security.crypto.merlin.keystore.password",
>> pwdValue);*
>>
>> * prop.setProperty("org.apache.ws.security.crypto.merlin.file",
>> pathtoKeyStore);*
>>
>> * prop.setProperty(WSHandlerConstants.IS_BSP_COMPLIANT, "false");*
>>
>> *
>> //prop.setProperty(WSHandlerConstants.ALLOW_NAMESPACE_QUALIFIED_PASSWORD_TYPES,
>> "true");*
>>
>> * Crypto crypto = CryptoFactory.getInstance(prop);*
>>
>> * builder.prepare(soapDocument, crypto, header);*
>>
>>
>>  Vector parts = new Vector();
>>
>>
>>
>>
>> parts.add(new WSEncryptionPart(TIMESTAMP_LOCALNAME, TIMESTAMP_QNAME,
>> CONTENT));
>>
>> parts.add(new WSEncryptionPart(builder.getBSTTokenId()));
>>
>> parts.add(new WSEncryptionPart(ASSERTION_LOCALNAME, ASSERTION_QNAME
>> ,ELEMENT));
>>
>> parts.add(new WSEncryptionPart(SOAPBODY_LOCALNAME,SOAPBODY_QNAME,CONTENT
>> ));
>>
>>  builder.setParts(parts);
>>
>> builder.prependBSTElementToHeader(header);
>>
>> builder.computeSignature(builder.addReferencesToSign(parts,header));
>>
>>   Proxy proxy = new Proxy(Proxy.Type.HTTP, new
>> InetSocketAddress("63.66.64.232",8080));
>>
>>  String jNetURL1= "https://XXX/";;
>>
>> URL endpoint = new URL(jNetURL1);
>>
>> HttpURLConnection con = (HttpURLConnection)
>> endpoint.openConnection(proxy);
>>
>> con.setRequestMethod("POST");
>>
>> con.setRequestProperty("Content-type", "text/xml; charset=utf-8");
>>
>> con.setRequestProperty("SOAPAction", "http://jnet.XXX/XX";);
>>
>>
>> con.setDoInput(true);
>>
>> con.setDoOutput(true);
>>
>>  OutputStream reqStream = con.getOutputStream();
>>
>>  if(con ==null){
>>
>> System.out.println("Connection to Jnet is null");
>>
>>  }
>>
>> String SoapMessageWithSign = nodeToString(soapDocument);
>>
>> System.out.println("Anupam SOAP Message with after signature :
>> "+SoapMessageWithSign);
>>
>>  reqStream.write(SoapMessageWithSign.getBytes());
>>
>>
>> String jNetresponse=null;
>>
>> try {
>>
>> BufferedReader httpReader = new BufferedReader(new InputStreamReader(
>>
>> con.getInputStream()));
>>
>>  String inputLine = null;
>>
>> StringBuffer buff = new StringBuffer();
>>
>> System.out.println("value of httpreader "+httpReader.ready());
>>
>> System.out.println("httpReader value "+httpReader.toString());
>>
>>  while ((inputLine = httpReader.readLine()) != null) {
>>
>> buff.append(inputLine);
>>
>> System.out.println("input line "+inputLine);
>>
>> }
>>
>>
>> jNetresponse = buff.toString();
>>
>>
>> //System.out.println("Anupam Post response:"+response);
>>
>>
>> }catch(SOAPFaultException sfe){
>>
>> System.out.println(sfe.getMessage());
>>
>>  }
>>
>>
>> Best regards,
>> Anupam Nandan
>>
>
>
> --
> Best regards,
> Anupam Nandan
> 201.920.0722
>
>

-- 
Best regards,
Anupam Nandan
201.920.0722

Reply via email to