summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/congress/test-webapp/www/proxy/index.php93
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);