All Apps and Add-ons

REST API Modular - trouble passing token header



I'm attempting to write a custom authentication handler for the REST API Modular Input addon.

The authentication handler needs to login to a logon endpoint and get a userToken before issuing any  API POST calls.

Screenshot - Data Input Example


At the moment my custom authentication handler looks as follows:


from requests.auth import AuthBase
import hmac
import base64
import hashlib
import requests,json

class CustAuthHandler(AuthBase):
    def __init__(self, **args):
        self.username = args['username']
        self.password = args['password']
        self.auth_url = args['auth_url']

    def __call__(self,r):
        # perform authorization
        payload = {'username': self.username,'password':self.password}
        # Login to Logon endpoint
        auth_response =,data=payload)
        # Save response
        response_json = json.loads(auth_response.text)
        # Set userToken variable
        userToken = response_json['userToken']

        # set header
        headers = headers = {'Authorization': 'Bearer ' + userToken}
        r.headers = headers
        return r



I have successfully tested the sample endpoint by manually providing the Authorization: Bearer token in the HTTP header properties to ensure I can ingest data into Splunk.

I have tried turning Debug mode on, however the  restmodinput_app_modularinput.log only shows the following


Although the above looks okay, when I check the source I can't see any ingested data

Any help appreciated 🙂

Labels (3)
0 Karma
Did you miss .conf21 Virtual?

Good news! The event's keynotes and many of its breakout sessions are now available online, and still totally FREE!