cancel
Showing results for 
Search instead for 
Did you mean: 

Append Usrname Password in Adapter Engine URL

Former Member
0 Kudos

Dear All

We have to share the WSDL with an external system to connect with PI

We are using Adapter Engine url with following format

  • http:// <host name> : <port name> /XISOAPAdapter/MessageServlet?channel= <party name> : <service name> : <channel name>

Can some one suggest how to append the username password in it

Sourabh

Accepted Solutions (0)

Answers (5)

Answers (5)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Provide username and password to the sending client system. That's it.  They can send as http header parameters.  Basically they will do base64 encoding of user and password  and append as below in the http header.

    Authorization: Basic base64encoded user:password.value


http://en.wikipedia.org/wiki/Basic_access_authentication

http://security.stackexchange.com/questions/29916/why-does-http-basic-authentication-encode-the-user...


Former Member
0 Kudos

Hello,

I think Rodrigo is right.

Even after putting user/pass in URL it prompts for credentials, and while doing some search i noticed below blog which states that: The user authentication of the SOAP adapter is not part of the SOAP adapter but of the web container of the J2EE engine

http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/03/07/a-closer-look-at-soap-sender-auth...

Thanks

Amit Srivastava

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

Hi,

>>>http://<hostname>:<port>/ XISOAPAdapter/MessageServlet?channel=<party>:<service>:<channel>&sap-user=<username>&sap-password=<password>

This is not possible. But instead of sending to soap adapter in the wsdl url while creating for soap sender communication channel give the integration engine url. Then it will allow to skip the user id and pwd. You should create the url like mentioned by stefan in his blog:

/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine

I think the other way would be to use soap axis framework where you can add user name and pwd in your moudle configuration and this will add to the url before it hits the adapter.

maybe try calling an HTTP adapter (this way you don't have to user and pass - as you can put it in SICF - http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/07/24/java-based-http-adapter--how-to-p... -)

>>>>  Then how do the third party system send the request?

I beleive you are creating soap sender for the third party system to send request . So create the wsdl using PI as below and pass it to the third party system. Basically they will consume your webservice.

Do the following in the sender soap adapter

Transport Protocol HTTP or HTTPS

Message Protocol SOAP1.1

Adapter Engine Central Adapter Engine

HTTP Security Level HTTP or HTTPs or whatever your requirement

Quality of service Best Effort for synchronous other options for asynchronous

Now WSDL generation part:

Go to IR, under tools -> display wsdl -> Use the URL syntax below (dont click propose url)

http://hostname:j2eeport/XISOAPAdapter/MessageServlet?channel=:sender_business_system:sender_communication_ channel

hostname ex dev.abc.com

j2eeport ex 50000 (no abap port 8****)

sender_party or sender_busines_system ex: BC_XXXX

sender_communication_channel ex: abc_soap_sender

in the subsequent page enter

outbound interface name

and Outbound interface namespace

then finally it will generate wsdl. save it. Use that wsdl for accessing your web service

Note: Outbound Interface for sender webservice (sender soap)

Inbound interface for receiver webservice (receiver soap)

Hope I answered your first question. If not let me know.

>>>> Where do we pass the user Id?

Provide user ID information manually to the third party.   They will use that information in their side.

Example: If they write client webservice program they will use login information in their side. Or if they test using soapclient , they will add in the request.

>>> Is there any provision for us to configure the user id in SICF or the third party system need to configure at their end?

Talk to your basis team. They will create one user Id for the third party system to use your SAP System.

Former Member
0 Kudos

Hello,

Try this:

http:// <host name> : <port name> /XISOAPAdapter/MessageServlet?channel= <party name> : <service name> : <channel name>&sap-user=username&sap-password=password

Thanks

Amit Srivastava

Former Member
0 Kudos

hi Sourabh,

append below string after channel name...

&sap-user=<user>r&sap-password=<pwd>

Thank You,

Madhav