1. Suhas Shravagi
  2. PowerBuilder
  3. Tuesday, 4 February 2020 12:11 PM UTC

Hi, I've a desktop application built using Appeon PowerBuilder 2017 R2 version. This application calls SOAP WebService developed in Java to authenticate users. Now, there is a requirement to implement the SSL/Certificate Validation or Pinning in this application where the client will check the Webserver’s certificate against a known copy of that certificate. The Webserver's certificate will be bundled with the application. So is there any way to implement the SSL Pinning in PowerBuilder desktop application? Please assist

Suhas Shravagi Accepted Answer Pending Moderation
  1. Monday, 21 September 2020 08:15 AM UTC
  2. PowerBuilder
  3. # 1

Hi, Can someone check the above piece of code and respond on how to extract the array from XML response? The reason behind asking this question is because I have never implemented pbdom or HTTPClient in PowerBuilder before. Thanks!

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Tuesday, 4 February 2020 20:00 PM UTC
  2. PowerBuilder
  3. # 2

Hi Suhas;

  PB does not currently support SSL for SOAP Web Service interaction. However, you might consider the following alternatives ....

1) The new HTTPClient PB object class supports TLS 1.2 encryption over to SOAP based web services.

2) You could also try and using a 3rd party product.

    One example: https://www.example-code.com/powerbuilder/http_authentication.asp

HTH

Regards ... Chris

Comment
  1. Suhas Shravagi
  2. Monday, 10 February 2020 13:26 PM UTC
Hello Chris,



Thanks for the response. Does it mean that PowerBuilder is unable to do SSL interaction with SOAP but will be possible with REST? Or PowerBuilder not at all support SSL interaction?
  1. Helpful
  1. Chris Pollach @Appeon
  2. Monday, 10 February 2020 20:19 PM UTC
Hi Suhas. The HTTPClient object supports the following ...

1 – SSL 2

2 – SSL 3

3 – TLS 1.0

4 – TLS 1.1

5 – TLS 1.2
  1. Helpful
  1. Suhas Shravagi
  2. Thursday, 17 September 2020 13:57 PM UTC
I have been replying after a long break as this task was kept on hold. But now when I resumed implementing the HTTPClient object for calling SOAP WebService by enforcing TLS1.2, I am able to get the XML response from WebService as below:





<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;

<soapenv:Body>

<myfunctionResponse xmlns="http://tempurl.com">;

<myfunctionReturn>Ret_Val_1</myfunctionReturn>

<myfunctionReturn>Ret_Val_2</myfunctionReturn>

<myfunctionReturn>Ret_Val_3</myfunctionReturn>

</myfunctionResponse>

</soapenv:Body>

</soapenv:Envelope>



Now my need is to get the three return parameters (Ret_Val_1, Ret_Val_2, and Ret_Val_3.) I tried with PBDOM objects but it is always return only first element (Ret_Val_1) always.Is there anything that I can do to resolve this issue? I have below piece of code now:

//---------------------------------------------------------------

lpbdom_Builder = CREATE PBDOM_BUILDER

lpbdom_doc = CREATE PBDOM_DOCUMENT



TRY

// generate XML Document

lpbdom_Doc = lpbdom_Builder.BuildFromString(ls_xml_data)





ls_value = lpbdom_Doc.GetRootElement().&

GetChildElement("Body", "soapenv","http://schemas.xmlsoap.org/soap/envelope/";).&

GetChildElement("myfunctionResponse","","http://tempurl.com";).&

GetChildElement("myfunctionReturn","","http://tempurl.com";).getText()



MessageBox("ls_value", ls_value)

CATCH (PBDOM_Exception lpbdom_Except)

MessageBox( "PBDOM_Exception", lpbdom_Except.GetExceptionCode())

END TRY



DESTROY lpbdom_Builder

//---------------------------------------------------------------



I know these parameters have to be captured in an array, but how?
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.
We use cookies which are necessary for the proper functioning of our websites. We also use cookies to analyze our traffic, improve your experience and provide social media features. If you continue to use this site, you consent to our use of cookies.