Web Services source - Request body NOT JSON

Hi,

Is it possible to pass Content-Type ‘text/plain’ for a Web Services request?

for example, I just want the body to be ReadOnly - no JSON, no form data

i.e. I want to implement the cURL request
curl --location --request POST 'https://some.url/add' --header 'Authorization: Basic xxxx' --header 'Content-Type: text/plain' --data-raw 'ReadOnly'

When I try, I am getting the error

"exception":{"stacktrace":"connector.sdk.webservices.exception.WebServicesSdkException: 
	at connector.sdk.webservices.ExecutionMediator.processEndpoint(ExecutionMediator.java:657)
	at connector.sdk.webservices.ExecutionMediator.process(ExecutionMediator.java:354)
	at connector.sdk.webservices.ExecutionMediator.process(ExecutionMediator.java:201)
	at sailpoint.connector.webservices.v2.WebServiceFacadeV2.addRemoveEntitlement(WebServiceFacadeV2.java:1406)
	at sailpoint.connector.webservices.v2.WebServiceFacadeV2.handleAttributeRequests(WebServiceFacadeV2.java:1715)
	at sailpoint.connector.webservices.v2.WebServiceFacadeV2.update(WebServiceFacadeV2.java:1136)
	at sailpoint.connector.webservices.v2.WebServiceFacadeV2.provision(WebServiceFacadeV2.java:607)
	at sailpoint.connector.webservices.WebServicesConnector.provision(WebServicesConnector.java:109)
	at sailpoint.connector.ConnectorProxy.provision(ConnectorProxy.java:1218)
	at com.sailpoint.ccg.cloud.container.Container.provision(Container.java:392)
	at com.sailpoint.ccg.cloud.container.ContainerIntegration.provision(ContainerIntegration.java:156)
	at com.sailpoint.ccg.handler.ProvisionHandler.invoke(ProvisionHandler.java:200)
	at sailpoint.gateway.accessiq.CcgPipelineMessageHandler.handleMessage_aroundBody0(CcgPipelineMessageHandler.java:44)
	at sailpoint.gateway.accessiq.CcgPipelineMessageHandler$AjcClosure1.run(CcgPipelineMessageHandler.java:1)
	at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:167)
	at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:38)
	at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170)
	at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143)
	at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:40)
	at sailpoint.gateway.accessiq.CcgPipelineMessageHandler.handleMessage(CcgPipelineMessageHandler.java:36)
	at com.sailpoint.pipeline.server.PipelineServer$InboundQueueListener$MessageHandler.run(PipelineServer.java:382)
	at java.base\/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base\/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base\/java.lang.Thread.run(Thread.java:829)

Thanks

I am fairly certain the response needs to be either JSON or XML, otherwise the Connector doesn’t know how to process it.

You may be able to use text/plain on the initial call, and then implement an After Operation Rule to convert it to JSON or XML. Then the endpoint would be able to process the information.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.