5959
6060class SVCRestore (splunk .rest .BaseRestHandler ):
6161
62- def query_back_for_user_and_permissions (self , authorization_token , * , sslVerify ):
62+ def query_back_for_user_and_permissions (self , requestingAddress , authorization_token , * , sslVerify ):
6363 headers = { "Authorization" : authorization_token }
6464
6565 #Run a query back against the source system to check the username/role
66- remoteAddr = self .request ['remoteAddr' ]
67- url = "https://" + remoteAddr + ":8089/services/authentication/current-context?output_mode=json"
66+ if requestingAddress :
67+ remoteAddr = requestingAddress
68+ else :
69+ remoteAddr = "https://" + self .request ['remoteAddr' ] + ":8089"
70+ url = remoteAddr + "/services/authentication/current-context?output_mode=json"
6871 logger .info ("Received remote request checking username and role related to the token on url=%s" % (url ))
6972 logger .debug ("token=%s" % (authorization_token ))
7073
@@ -160,7 +163,12 @@ def handle_POST(self):
160163 else :
161164 time_wait = 600
162165
163- username , roles = self .query_back_for_user_and_permissions (payload ['Authorization' ][0 ], sslVerify = sslVerify )
166+ if 'requestingAddress' in payload :
167+ requestingAddress = payload ['requestingAddress' ][0 ]
168+ else :
169+ requestingAddress = None
170+
171+ username , roles = self .query_back_for_user_and_permissions (requestingAddress , payload ['Authorization' ][0 ], sslVerify = sslVerify )
164172 logger .info ("username=%s roles=%s" % (username , roles ))
165173
166174 app = payload ['app' ][0 ]
@@ -207,7 +215,7 @@ def handle_POST(self):
207215 headers = { "Authorization" : "Splunk " + self .request ['systemAuth' ] }
208216 curtime = calendar .timegm (time .gmtime ())
209217 url = "https://localhost:8089/servicesNS/nobody/SplunkVersionControl/storage/collections/data/splunkversioncontrol_rest_restore_status"
210- res = self .runHttpRequest (url , headers , None , "get" , "checking kvstore collection splunkversioncontrol_rest_restore_status" , sslVerify = sslVerify )
218+ res = self .runHttpRequest (url , headers , None , "get" , "checking kvstore collection splunkversioncontrol_rest_restore_status" , sslVerify = False )
211219 if not res :
212220 return
213221
@@ -216,7 +224,7 @@ def handle_POST(self):
216224 if not len (res ) == 0 :
217225 if not 'start_time' in res [0 ]:
218226 logger .warn ("Warning invalid kvstore data, will wipe it and continue in collection splunkversioncontrol_rest_restore_status on url=%s, value returned res=\" %s\" " % (url , payload ))
219- self .runHttpRequest (url , headers , None , 'delete' , 'wiping kvstore splunkversioncontrol_rest_restore_status' , sslVerify = sslVerify )
227+ self .runHttpRequest (url , headers , None , 'delete' , 'wiping kvstore splunkversioncontrol_rest_restore_status' , sslVerify = False )
220228 else :
221229 kvstore_start_time = res [0 ]['start_time' ]
222230 target_time = curtime - time_wait
0 commit comments