Question
Salame
Last activity: 9 Aug 2016 11:02 EDT
SOAP Connector with NTLM Athentication
Hello,
I'm configuring a SOAP connector that points to a specific WSDL. This webservice used NTLM authentication. I did the configuration in attached file (1.jpg)
but, in Test connectivity, I'm getting an exception in 2.jpg although I have successfully configured my NTLN authentication profile.
Please note that using soap ui, everything is gd (3.jpg). Any idea?
Thanks,
Rosy
***Updated by moderator: Lochan to add Category***
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
Salame
Hello Guys,
After many attempts, I obtained the folllowing:
Caused by: com.pega.apache.axis2.AxisFault: Transport error: 401 Error: HTTP/1.1 401 Unauthorized
and I applied the fix in https://community.pega.com/support/support-articles/ntlm-auth-failed-401-error-http11-401-unauthorized.
Problem solved,
Thanks all for your responses,
Rosy
Pegasystems Inc.
US
what is your prpc version? In general test connectivity runs different code from that of the runtime (using NTLM auth profile) - that can explains the difference. Attaching the full log would help as well.
Salame
Thnks Kevin, it is 7.2.
Below is the log.
Thanks for ur help,
Rosy
Pegasystems Inc.
IN
Hi Rosy,
Please provide the following
1) PRPC version
2) Authentication profile screen shot
3) Full log
Salame
Hi Sudhish,
Please find below the requested info:
1- version 7.2
3- attached
Hi Sudhish,
Please find below the requested info:
1- version 7.2
3- attached
Caused by: java.net.UnknownHostException: qliktst
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at com.pega.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:242)
at com.pega.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:130)
at com.pega.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at com.pega.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at com.pega.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at com.pega.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at com.pega.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:825)
at com.pega.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:759)
at com.pega.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:737)
There might be a problem of communication between those 2 servers, I requested that from IT department, and I will be re-testing that. I will get back to you
Thanks a lot,
Rosy
PEG
IN
Hi Rosy,
Can you check "Use Authentication" checkbox in Connect-SOAP rule and test the connectivity.
Incase if still it doesn't work, please try to invoke the Connect-SOAP rule either from data page or from Activity.
P.S: Sometimes test connectivity might not give accurate results.
Salame
Hi Gangababu,
It still doesn't work. I will try that and get back to you.
Thanks a lot,
Rosy
Salame
hello Guys,
I went to Designer Studio> Integration > Connectors >Create SOAP Integration in order to test direclt my connector.
I have put the URL of the WSDL, in next, I have chosen my operation called : GetTimeLimitedServiceKey and I have clicked on "Test" so I can test it directly from the simulator. I have entered my NTLN authentification, but, after hitting "Test", I have the following error (in attached snapshot soap.jpg). Could you please advise?
Thanks,
Rosy
PEG
IN
What happens if you run the Connector& Metadata wizard and test the connectivity?
Salame
Hi Gangababu, it is still the following error:
There was a problem in invoking SOAP Service :com.pega.apache.axis2.AxisFault: Software caused connection abort: recv failed. i'm afraid that this is due to NTLM authentication.
Regards,
Rosy
PEG
IN
Hi Rosy,
Looks like your network is blocking the response. One thing you would need to verify is are you using same host for PRPC and SOAP UI ?
Let's assume your PRPC is in xxxx host and are you running the SOAP UI from xxxx host or from different one.
PEG
IN
Can you set the proxy settings at jvm level and try running the scenario?
Please refer http://viralpatel.net/blogs/http-proxy-setting-java-setting-proxy-java/
Can you set the proxy settings at jvm level and try running the scenario?
Please refer http://viralpatel.net/blogs/http-proxy-setting-java-setting-proxy-java/
-Dhttp.proxyHost=proxyhostURL
-Dhttp.proxyPort=proxyPortNumber
-Dhttp.proxyUser=someUserName
Pegasystems Inc.
IN
Do you see any detailed log in PegaRULES?
Also, check application server logs if there is detailed error trace.
Updated: 8 Aug 2016 12:24 EDT
Salame
I have the following in PegaRules.log only:
2016-08-05 16:56:09,418 [ttp-bio-80-exec-1532] [TABTHREAD0] [ ] [ CSFW:01.01.02] (onnect.soap.SOAPFaultComponent) ERROR pegadev2ap|XXX.XX.XXX.XXX rsalame - SOAP Service failed. Software caused connection abort: recv failed
In app server logs, there is no exception.
Regards,
Rosy
Updated: 8 Aug 2016 12:26 EDT
Salame
I have the following in PegaRules.log only:
2016-08-05 16:56:09,418 [ttp-bio-80-exec-1532] [TABTHREAD0] [ ] [ CSFW:01.01.02] (onnect.soap.SOAPFaultComponent) ERROR pegadev2ap|XXX.XX.XXX.XXX rsalame - SOAP Service failed. Software caused connection abort: recv failed
In app server logs, there is no exception.
Regards,
Rosy
Pegasystems Inc.
US
This error normally means some kind of networking or firewall issues. Try SOAP UI 3rd party tool with the same endpoint, does that work?
Salame
Hello Kevin,
It worked using SOAP UI, but, I have specified a proxy using Burp suite free software and I used that proxy in my SOAP UI configuration, but, in Pega, where to specify that for the NTLM authentication?
Thnanks in advance,
Rosy
Pegasystems Inc.
IN
This usually means that there was a network error. Please check connectivity wise everything is fine. In order to check the same you can use any 3rd party SOAP UI tool and verify. If it is successful, then only we need to check on the PRPC side.
Salame
Hello Sudhish,
It worked using SOAP UI, but, I have specified a proxy using Burp suite free software and I used that proxy in my SOAP UI configuration, but, in Pega, where to specify that for the NTLM authentication?
Thnanks in advance,
Rosy
Pegasystems Inc.
US
That explains why you have issues for direction connection. In Pega you can create a datapage for the class
That explains why you have issues for direction connection. In Pega you can create a datapage for the class
Here is the relevant code that uses the data page pyProxySettingsForSOAP in the invokeaxis2 - follow this link
https://community.pega.com/support-articles/how-configure-proxy-setting-soap-connector
ClipboardPage proxyPage = tools
.findPage("pyProxySettingsForSOAP");
if (proxyPage != null) {
if (proxyPage.getString("pyProxyName", /* PropertyGetOptimizationRewrite(inject argument: true) */
true) != null) {
com.pega.apache.axis2.transport.http.HttpTransportProperties.ProxyProperties proxyProperties = new com.pega.apache.axis2.transport.http.HttpTransportProperties.ProxyProperties();
proxyProperties.setProxyName(proxyPage.getString(
"pyProxyName", /* PropertyGetOptimizationRewrite(inject argument: true) */
true));
if (proxyPage.getString("pyProxyDomain", /* PropertyGetOptimizationRewrite(inject argument: true) */
true) != null) {
proxyProperties.setDomain(proxyPage.getString(
"pyProxyDomain", /* PropertyGetOptimizationRewrite(inject argument: true) */
true));
}
if (proxyPage.getString("pyProxyPassword", /* PropertyGetOptimizationRewrite(inject argument: true) */
true) != null) {
proxyProperties.setPassWord(proxyPage.getString(
"pyProxyPassword", /* PropertyGetOptimizationRewrite(inject argument: true) */
true));
}
if (proxyPage.getString("pyProxyUserName", /* PropertyGetOptimizationRewrite(inject argument: true) */
true) != null) {
proxyProperties.setUserName(proxyPage.getString(
"pyProxyUserName", /* PropertyGetOptimizationRewrite(inject argument: true) */
true));
}
if (proxyPage.getString("pyProxyPort", /* PropertyGetOptimizationRewrite(inject argument: true) */
true) != null) {
try {
proxyProperties.setProxyPort(Integer
.parseInt(proxyPage.getString(
"pyProxyPort", /* PropertyGetOptimizationRewrite(inject argument: true) */
true)));
} catch (Exception e) {
// Ignore any invalid port.
}
}
options.setProperty(
com.pega.apache.axis2.transport.http.HTTPConstants.PROXY,
proxyProperties);
}
}
Pegasystems Inc.
HK
What is the PRPC version that you are using??PRPC supports NTLM authentication starting PRPC 6.3 . You can provide NTLM authentication details in the Authentication profile available under Security category. Is the wsdl protected too with NTLM authentication???
Salame
my PRPC is 7.2.
Below is my details:
User name: rsalame
password: ***********
Domain: LB-MUREX-COM
Host Name: qliktst
concerning ur last question, how to know that?
Thanks,
Rosy
Accepted Solution
Salame
Hello Guys,
After many attempts, I obtained the folllowing:
Caused by: com.pega.apache.axis2.AxisFault: Transport error: 401 Error: HTTP/1.1 401 Unauthorized
and I applied the fix in https://community.pega.com/support/support-articles/ntlm-auth-failed-401-error-http11-401-unauthorized.
Problem solved,
Thanks all for your responses,
Rosy
Pegasystems Inc.
US
Rosy,
Thanks for sharing the info. For the benefits of the community members, can you summarize what you did to solve your issue:
1. Setting proxy settings (either JVM or use data page to define proxy settings)
Is that correct?
Salame
Hello Kevin, sure:)
For the 1st point, I didn't apply it as IT/Security Department was responsible to ensure the communication between pega and the host
I only applied the 2nd fix.
Thanks a lot,
Rosy