diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/congress/test-webapp/www/proxy/index.php | 93 |
1 files changed, 54 insertions, 39 deletions
diff --git a/components/congress/test-webapp/www/proxy/index.php b/components/congress/test-webapp/www/proxy/index.php index 39d54d3..ca23b92 100644 --- a/components/congress/test-webapp/www/proxy/index.php +++ b/components/congress/test-webapp/www/proxy/index.php @@ -23,12 +23,15 @@ if ($method == 'OPTIONS') { exit(); } +$url = "http://CONGRESS_HOST:1789".$_GET['~url']; +$body = file_get_contents('php://input'); +$token = ""; +$responseCode = ""; +$response = ""; +$type = ""; -if (file_exists("/tmp/os_token")) { - $token = file_get_contents("/tmp/os_token"); - file_put_contents("/tmp/".date('ymd').".log", "proxy.php, auth token=".$token."\n",FILE_APPEND); -} -else { +function get_token() { + global $token; $url = "http://KEYSTONE_HOST:5000/v2.0/tokens"; $curlop = curl_init(); curl_setopt($curlop, CURLOPT_URL, $url); @@ -40,49 +43,61 @@ else { $body = '{"auth": {"tenantName": "OS_TENANT_NAME", "passwordCredentials": {"username": "OS_USERNAME", "password": "OS_PASSWORD"}}}'; curl_setopt($curlop, CURLOPT_POSTFIELDS, $body); $req_time=time(); - $result = file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$url.", ".$type.", ".$body."\n",FILE_APPEND); - if ($result === false) $response = "PHP error in index.php"; + file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$url.", ".$type.", ".$body."\n",FILE_APPEND); $response = curl_exec($curlop); $body = substr($response, $header_size); - $result = file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$responseCode.", ".$type.", ".$header.", ".$body."\n",FILE_APPEND); - if ($result === false) $response = "PHP error in index.php"; + file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$responseCode.", ".$type.", ".$header.", ".$body."\n",FILE_APPEND); $response = json_decode($body); $token = $response->access->token->id; file_put_contents("/tmp/os_token",$token); } -$url = "http://CONGRESS_HOST:1789".$_GET['~url']; -$curlop = curl_init(); -curl_setopt($curlop, CURLOPT_URL, $url); -curl_setopt($curlop, CURLOPT_CUSTOMREQUEST, $method); -curl_setopt($curlop, CURLOPT_HTTPHEADER, array("X-Auth-Token: '.$token'")); -//curl_setopt($curlop, CURLINFO_HEADER_OUT, 0); -curl_setopt($curlop, CURLOPT_RETURNTRANSFER, 1); -curl_setopt($curlop, CURLOPT_SSL_VERIFYPEER, false); -curl_setopt($curlop, CURLINFO_HEADER_OUT, true); +function send_request($method,$url,$body) { + global $token, $responseCode, $response, $type; + $curlop = curl_init(); + curl_setopt($curlop, CURLOPT_URL, $url); + curl_setopt($curlop, CURLOPT_CUSTOMREQUEST, $method); + curl_setopt($curlop, CURLOPT_HTTPHEADER, array("X-Auth-Token: ".$token)); + //curl_setopt($curlop, CURLINFO_HEADER_OUT, 0); + curl_setopt($curlop, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curlop, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curlop, CURLINFO_HEADER_OUT, true); + if ($method == "POST") { + curl_setopt($curlop, CURLOPT_HTTPHEADER, array("Content-Type: application/json","X-Auth-Token: ".$token)); + curl_setopt($curlop, CURLOPT_POSTFIELDS, $body); + } + $response = curl_exec($curlop); + $req_time=time(); + $info = curl_getinfo($curlop); + file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$url.", ".$type.", ".$body."\n",FILE_APPEND); + $responseCode=curl_getinfo($curlop,CURLINFO_HTTP_CODE); + $header_size = curl_getinfo($response, CURLINFO_HEADER_SIZE); + $header = substr($response, 0, $header_size); + $type = curl_getinfo($curlop,CURLINFO_CONTENT_TYPE); + $body = substr($response, $header_size); + file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$responseCode.", ".$type.", ".$header.", ".$body."\n",FILE_APPEND); + curl_close($curlop); +} -if ($method == "POST") { - curl_setopt($curlop, CURLOPT_HTTPHEADER, array("Content-Type: application/json","X-Auth-Token: '.$token'")); - $body = file_get_contents('php://input'); - curl_setopt($curlop, CURLOPT_POSTFIELDS, $body); +function send_response($response) { + // header("Location: ".$url); + header("Content-Type: ".$type); + header("Access-Control-Allow-Origin: *"); + echo $response; } -$response = curl_exec($curlop); -$req_time=time(); +if (file_exists("/tmp/os_token")) { + $token = file_get_contents("/tmp/os_token"); + file_put_contents("/tmp/".date('ymd').".log", "proxy.php, auth token=".$token."\n",FILE_APPEND); +} +else { + get_token(); +} -$info = curl_getinfo($curlop); -$result = file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$url.", ".$type.", ".$body."\n",FILE_APPEND); -if ($result === false) $response = "PHP error in index.php"; -$responseCode=curl_getinfo($curlop,CURLINFO_HTTP_CODE); -$header_size = curl_getinfo($response, CURLINFO_HEADER_SIZE); -$header = substr($response, 0, $header_size); -$type = curl_getinfo($curlop,CURLINFO_CONTENT_TYPE); -$body = substr($response, $header_size); -$result = file_put_contents("/tmp/".date('ymd').".log", "proxy.php, ".$req_time.", ".$responseCode.", ".$type.", ".$header.", ".$body."\n",FILE_APPEND); -if ($result === false) $response = "PHP error in index.php"; +send_request($method,$url,$body); +if ($responseCode == '401') { + get_token(); + send_request($method,$url,$body); +} -// header("Location: ".$url); -header("Content-Type: ".$type); -header("Access-Control-Allow-Origin: *"); -echo $response; -curl_close($curlop); +send_response($response); |