Debugged this extensively. Finally, I did a hack. Hardcoded my root context path /mysplunkapp in the file account.py:login(..) method
This works for me.
File affected:
../lib/python2.7/site-packages/splunk/appserver/mrsparkle/controllers/account.py
@expose_page(must_login=False, methods=['GET','POST'], verify_session=False)
@lock_session
@set_cache_level('never')
def login(self, username=None, password=None, return_to=None, cval=None, **kwargs):
#FIX (1) line below
return_to = '/mysplunkapp/en-US/' <<===
# Force a refresh of startup info so that we know to
# redirect if license stuff has expired.
startup.initVersionInfo(force=True)
updateCheckerBaseURL = self.getUpdateCheckerBaseURL()
ps: Replace hardcoded value with cherrypy.config.get('root.endpoint') , if you didn't like hardcoding.
... View more