108 def determineGeolocationData(self, remote_ip):
109 print "Super-Gluu. Determine remote location. remote_ip: '%s'" % remote_ip
110 httpService = CdiUtil.bean(HttpService)
111 http_client = httpService.getHttpsClient()
112 http_client_params = http_client.getParams()
113 http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)
114 geolocation_service_url =
"http://ip-api.com/json/%s?fields=520191" % remote_ip
115 geolocation_service_headers = {
"Accept" :
"application/json" }
117 http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)
118 http_response = http_service_response.getHttpResponse()
120 print "Super-Gluu. Determine remote location. Exception: ", sys.exc_info()[1]
124 if not httpService.isResponseStastusCodeOk(http_response):
125 print "Super-Gluu. Determine remote location. Get invalid response from validation server: ", str(http_response.getStatusLine().getStatusCode())
126 httpService.consume(http_response)
128 response_bytes = httpService.getResponseContent(http_response)
129 response_string = httpService.convertEntityToString(response_bytes)
130 httpService.consume(http_response)
132 http_service_response.closeConnection()
134 if response_string ==
None:
135 print "Super-Gluu. Determine remote location. Get empty response from location server" 139 response = json.loads(response_string)
141 if not StringHelper.equalsIgnoreCase(response[
'status'],
"success"):
142 print "Super-Gluu. Determine remote location. Get response with status: '%s'" % response[
'status']