4 Replies Latest reply on Mar 18, 2020 3:46 PM by Ganesh Gore

    DWP Rest Connector with NTML Authentication??

    Ganesh Gore
      Share This:

      Team,

       

      I am trying to call third party web service in DWP catalog using 'Send Http Request' REST Connector but facing some issue. This API requires NTLM authentication due to security reasons so basic authentication.doesn't work.

      I have tested the API in the postman and it works fine. I need to explicitly select 'NTLM' as a authentication.

       

       

      I am trying to build input parameters and header using 'Build Input Set' step and passing that value as a Input to 'send http request'

       

      as described here:

       

      Building a custom input map in a workflow - Documentation for BMC Digital Workplace Advanced 3.5 - BMC Documentation

      REST connector - Documentation for BMC Digital Workplace Advanced 19.05 - BMC Documentation

       

       

       

       

      and passing these values to header:

       

       

       

      but when I submit the request , it fails with the error:

       

      Caused by: com.bmc.myservice.connect.exception.ConnectorException: Error occurred while requesting 'http://myrestserverwithport/runbook'. Reason: Unauthorized

      at com.bmc.myservice.connect.rest.service.RequestExecutor.constructResponse(RequestExecutor.java:121)

      at com.bmc.myservice.connect.rest.service.RequestExecutor.execute(RequestExecutor.java:83)

      at com.bmc.myservice.connect.rest.service.RestService.sendHttpRequest(RestService.java:129)

      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      at java.base/java.lang.reflect.Method.invoke(Method.java:566)

      at com.bmc.arsys.server.rx.services.action.DefaultCustomActionExecutor.invokeMethod(DefaultCustomActionExecutor.java:516)

      at com.bmc.arsys.server.rx.services.action.DefaultCustomActionExecutor.execute(DefaultCustomActionExecutor.java:379)

      at com.bmc.arsys.server.rx.services.action.DefaultCustomActionExecutor.execute(DefaultCustomActionExecutor.java:318)

      at com.bmc.arsys.server.rx.services.action.ActionServiceImpl.execute(ActionServiceImpl.java:229)

      at com.bmc.arsys.server.rx.services.process.ProcessServiceImpl.executeActivityInternal(ProcessServiceImpl.java:1110)

      at com.bmc.arsys.server.rx.services.process.ProcessServiceImpl.executeActivity(ProcessServiceImpl.java:1043)

      at com.bmc.arsys.server.rx.services.process.activiti.ServiceActionImpl.execute(ServiceActionImpl.java:53)

      at org.activiti.engine.impl.delegate.JavaDelegateInvocat

       

       

      Does DWP-C REST connector support NTLM authentication? If yes, how to pass 'authentication type' in the header?  Any thoughts/ideas?

        • 1. Re: DWP Rest Connector with NTML Authentication??
          Ganesh Gore

          cc:  Remedy AR System community experts as it is something related to REST APIs.

          LJ LongWing , Jason Miller , Carl Wilson , Mark Walters any ideas guys?

          • 2. Re: DWP Rest Connector with NTML Authentication??
            Jason Miller

            I do not know about DWP specifically but traditionally the Remedy family has not handled NTLM authentication. I did a POC LANDesk integration using SOAP web services and we had to use Burp Proxy to add the NTLM layer (while it technically worked, I didn't deem it a production-worthy solution).

             

            My guess is you'll have to find or build your own library to use.

             

            This is interesting: NTLM Authentication in Java - DZone Java

            There might be something helpful in there?

            1 of 1 people found this helpful
            • 3. Re: DWP Rest Connector with NTML Authentication??
              Ganesh Gore

              Thanks Jason. Let me try to pass 'WWW-Authenticate' as header.

              • 4. Re: DWP Rest Connector with NTML Authentication??
                Ganesh Gore

                No luck. same error:

                 

                PFB error snippet: if you find anything relevant:

                --

                Caused by: com.bmc.myservice.connect.exception.ConnectorException: Error occurred while requesting 'http://myrestapi:port/xxxxxxxxx/Orchestrator.svc/Runbooks'. Reason: Unauthorized

                at com.bmc.myservice.connect.rest.service.RequestExecutor.constructResponse(RequestExecutor.java:121)

                at com.bmc.myservice.connect.rest.service.RequestExecutor.execute(RequestExecutor.java:83)

                at com.bmc.myservice.connect.rest.service.RestService.sendHttpRequest(RestService.java:129)

                at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

                at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

                at java.base/java.lang.reflect.Method.invoke(Method.java:566)

                at com.bmc.arsys.server.rx.services.action.DefaultCustomActionExecutor.invokeMethod(DefaultCustomActionExecutor.java:516)

                at com.bmc.arsys.server.rx.services.action.DefaultCustomActionExecutor.execute(DefaultCustomActionExecutor.java:379)

                at com.bmc.arsys.server.rx.services.action.DefaultCustomActionExecutor.execute(DefaultCustomActionExecutor.java:318)

                at com.bmc.arsys.server.rx.services.action.ActionServiceImpl.execute(ActionServiceImpl.java:229)

                at com.bmc.arsys.server.rx.services.process.ProcessServiceImpl.executeActivityInternal(ProcessServiceImpl.java:1110)

                at com.bmc.arsys.server.rx.services.process.ProcessServiceImpl.executeActivity(ProcessServiceImpl.java:1043)

                at com.bmc.arsys.server.rx.services.process.activiti.ServiceActionImpl.execute(ServiceActionImpl.java:53)

                at org.activiti.engine.impl.delegate.JavaDelegateInvocation.invoke(JavaDelegateInvocation.java:34)

                at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)

                at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)

                at org.activiti.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:51)

                at org.activiti.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:40)

                at com.bmc.arsys.rx.processengine.business.domain.ArClassDelegate.execute(ArClassDelegate.java:48)

                at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:54)

                at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:148)

                at com.bmc.arsys.rx.processengine.business.impl.interceptor.ArCommandContext.performOperation(ArCommandContext.java:123)

                at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:629)

                at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:624)

                at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)

                at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)

                at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:148)

                at com.bmc.arsys.rx.processengine.business.impl.interceptor.ArCommandContext.performOperation(ArCommandContext.java:123)