cancel
Showing results for 
Search instead for 
Did you mean: 

Proxy to Webservice synchronous

Former Member
0 Kudos

Hi All,

I have a scenario where SAP PI needs to communicate with a target synchronous webservice:

The server returns the data in binary format (byte[]) using MTOM to optimize large data transfer.

I need to carry out the following steps after receiving the synchronous webservice response:

1. Verify the integrity of the data received using SHA-1 hashing algorithm.

2. Call another method on webservice server once i verify data with hash algorithm after successful receipt of data.

3. Decrypt the data using AES symmetric algorithm.

4. Decompress the data. GZipStream is used to compress the data.

Can I carry out the following steps in the SOAP adapter module or I need to handle it in Java mapping.

I was referring the folowwing blog which is similar to my scenario : /people/sap.user72/blog/2005/06/16/using-digital-signatures-in-xi

How you use java cryptographic tool kit for this ..and the algorithm used for this purpose ..If you can send me the sample code will be very helpful .And the step by step method of implementing digital signature.

Thanks in advance

Edited by: Nidhi Bansal on Dec 28, 2009 7:11 PM

Edited by: Nidhi Bansal on Dec 29, 2009 12:26 PM

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Is the SAP PI/XI SOAP adapter MTOM compliant ? If not, maybe using AXIS framework (I know Axis supports MTOM) could be the best choice ... This framework also offers a lot of customization (you can add authentication features etc) ...

I think your scenario will require custom code at mapping and module level ...

Rgds

Chris

Former Member
0 Kudos

Hi Chris,

Can you suggest which would be a better place to handle, is it java mapping or custom adapter module. Can you suggest can I execute the following steps in java mapping :

1. Verify the integrity of the data received using SHA-1 hashing algorithm.

2. Call another method on webservice server once i verify data with hash algorithm after successful receipt of data.

3. Decrypt the data using AES symmetric algorithm.

4. Decompress the data. GZipStream is used to compress the data.

Thanks and regards

Nidhi

Former Member
0 Kudos

Hi All,

Any inputs for me.

Thx in advance

Nidhi

former_member187339
Active Contributor
0 Kudos

Hi Nidhi,

>>Can you suggest which would be a better place to handle, is it java mapping or custom adapter module. Can you suggest can I execute the following steps in java mapping :

Since you have to check data integrity and then call another web service it is better to go for either BPM or java proxy (in receiver side)

As far as the code is concerned for doing this, I guess you will get more idea if you search java forums for the standard code for doing the activities mentioned by you (step 1 to 4)

Regards

Suraj

Former Member
0 Kudos

Hi All,

I needed some tips on how I can handle this effectively:

u2022 Outgoing SOAP request must have the Addressing, TimeStamp and SOAP Body signed.

u2022 Outgoing SOAP request must have the body encrypted.

u2022 Outgoing SOAP request must have the client credential in a UsernameToken.

u2022 Incoming SOAP response must have the Addressing and TimeStamp signed.

u2022 Incoming SOAP response does not require SOAP body encryption. Data is encrypted using symmetric key encryption.

I need develop an adapter module in receiver soap adapter to fulfill the requirement to encrypt and decrypt.

As per my understanding on adapter module I can access the xmlpayload and operate on it. In the above case how do I access the SOAP Header and SOAP Body and sign it.

Also what is the sample java code to access the public certificate in J2ee keystore.