Getting Data In

Is it possible to set a custom HTTP response header from a custom API endpoint?

plambert
Engager

Given a Splunk Enterprise instance, we'd like to implement a custom API handler that also sets the CORS headers in the response:

Access-Control-Allow-Origin: http://…
Access-Control-Allow-Credentials: true

The goal is to allow a cloud service, with a customer's consent as expressed by installing the custom application AND providing the URL for their Splunk Enterprise instance, to perform a specific search via the custom REST API endpoint handler.

Before we start to dig into it, is there anything in place to prevent or disallow this? Has anyone done this and have any tips?

0 Karma

paramagurukarth
Builder

The doc to implement custom end points in splunk is available here,
Just python implementation..

It internally uses cherrypy, you can set header by

cherrypy.response.headers['Content-Type'] = 'application/json'
0 Karma

arkadyz1
Builder

I've done it and did set at least Access-Control-Allow-Origin with no problem.

0 Karma

marcolesh
Path Finder

Could you give and example, I can´t figure it out. I'm getting No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.

0 Karma

arkadyz1
Builder

How is your API organized? It can be added in more than one way: when I wrote my response, we were adding exta REST API endpoints via etc/system/local/restmap.conf - this makes them accessible through the management port (8089 by default). There you just add your header to the response:

class YourOwnAPIHandler(splunk.rest.BaseRestHandler):
    def handle_POST(self):

      ...
      self.response.setHeader('access-control-allow-origin', '*')
      return

The response by paramagurukarthikeyan below shows how to do that in the custom end points created using <your_app>/default/web.conf and appserver/controllers/<your_endpoints>.py

0 Karma

marcolesh
Path Finder

¡Thank you arkadyz I have succesefully implmented it!
The problem I had was related to CORS.

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...

Modernize your Splunk Apps – Introducing Python 3.13 in Splunk

We are excited to announce that the upcoming releases of Splunk Enterprise 10.2.x and Splunk Cloud Platform ...

Step into “Hunt the Insider: An Splunk ES Premier Mystery” to catch a cybercriminal ...

After a whole week of being on call, you fell asleep on your keyboard, and you hit a sequence of buttons that ...