]> git.datanom.net - qtadmin.git/commitdiff
prepare for wblistadm server
authorMichael Rasmussen <mir@datanom.net>
Tue, 23 Jun 2015 21:58:43 +0000 (23:58 +0200)
committerMichael Rasmussen <mir@datanom.net>
Tue, 23 Jun 2015 21:58:43 +0000 (23:58 +0200)
config.php
lib/utils.inc.php
rest_client.php [new file with mode: 0644]

index da1e02e90b8d58c05e9a5dda66b8f7ce29febfe7..ccc09c68e90c97c6fa89c2617070a8158c689308 100644 (file)
@@ -14,6 +14,9 @@ $CFG->amavis_policy_port = 9998;
 $CFG->ldap_dsn =  "ldap://127.0.0.1:389";
 $CFG->ldap_base_dn = "o=domains,dc=datanom,dc=net";
 
+// wblistadm server
+$CFG->wblistadm_url = "http://127.0.0.1:8080";
+
 $CFG->root = '/usr/share/quarantine-admin/';
 $CFG->wwwroot = '/qtadmin/';
 
index 5832d291f0638948b38572152e1b9659c91c30e1..e0ab45d868a7d3c7996343bd695c0c7e2f9567e1 100644 (file)
@@ -236,6 +236,9 @@ class Utils {
                             $admin = strtoupper($admin);
                         }
                         $this->settings['admin'] = ($admin == 'YES') ? true : false;
+
+                        // Log in to wblistadm server and get CSRFPreventionToken
+                        $url = $CFG->wblistadm_host . ':' . $CFG->wblistadm_port . '/ticket';
                     } else {
                         $this->settings['loginStatus'] = 'Login failed';
                     }
@@ -381,4 +384,47 @@ class Utils {
         return $string;
     }
 
+    public function RESTCall($url, $data = null, $cookiesIn = '') {
+        $options = array(
+            CURLOPT_RETURNTRANSFER => true,     // return web page
+            CURLOPT_HEADER         => true,     //return headers in addition to content
+            CURLOPT_FOLLOWLOCATION => true,     // follow redirects
+            CURLOPT_ENCODING       => "",       // handle all encodings
+            CURLOPT_AUTOREFERER    => true,     // set referer on redirect
+            CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
+            CURLOPT_TIMEOUT        => 120,      // timeout on response
+            CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
+            CURLINFO_HEADER_OUT    => true,
+            CURLOPT_SSL_VERIFYPEER => false,     // Disabled SSL Cert checks
+            CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
+            CURLOPT_COOKIE         => $cookiesIn
+        );
+
+        if ($data) {
+            $options[CURLOPT_POST] = 1;
+            $options[CURLOPT_POSTFIELDS] = $data;
+        }
+
+        $ch = curl_init($url);
+        curl_setopt_array($ch, $options);
+        $rough_content = curl_exec($ch);
+        $err = curl_errno($ch);
+        $errmsg = curl_error($ch);
+        $header = curl_getinfo($ch);
+        curl_close($ch);
+
+        $header_content = substr($rough_content, 0, $header['header_size']);
+        $body_content = trim(str_replace($header_content, '', $rough_content));
+        $pattern = "#Set-Cookie:\\s+(?<cookie>[^=]+=[^;]+)#m";
+        preg_match_all($pattern, $header_content, $matches);
+        $cookiesOut = implode("; ", $matches['cookie']);
+
+        $header['errno']   = $err;
+        $header['errmsg']  = $errmsg;
+        $header['headers'] = $header_content;
+        $header['content'] = $body_content;
+        $header['cookies'] = $cookiesOut;
+
+        return $header;
+    }
 }
diff --git a/rest_client.php b/rest_client.php
new file mode 100644 (file)
index 0000000..0f1e44b
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/*
+ * rest_client.php
+ *
+ * Copyright 2015 Michael Rasmussen <mir@datanom.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+require_once '/home/mir/git/qtadmin/config.php';
+require_once $CFG->root . 'lib/utils.inc.php';
+
+$util = new Utils;
+
+$data = 'username=mir@miras.org&password=Clara0503';
+$response = $util->RESTCall($CFG->wblistadm_url.'/ticket', $data, $cookiesIn = '')
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+    <title>untitled</title>
+    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
+    <meta name="generator" content="Geany 1.24.1" />
+</head>
+
+<body>
+<?php print_r($response); ?>
+</body>
+
+</html>
This page took 0.036574 seconds and 5 git commands to generate.