make the demo server only allow outofband requests when tests are being run
authorgggeek <giunta.gaetano@gmail.com>
Tue, 3 Jan 2023 11:36:10 +0000 (11:36 +0000)
committergggeek <giunta.gaetano@gmail.com>
Tue, 3 Jan 2023 11:36:10 +0000 (11:36 +0000)
demo/server/methodProviders/functions.php
demo/server/server.php
tests/index.php

index 898965b..6b50e0a 100644 (file)
@@ -14,7 +14,7 @@ use PhpXmlRpc\Server;
 use PhpXmlRpc\Value;
 
 // a PHP version of the state-number server
-// send me an integer and i'll sell you a state
+// send me an integer and I'll sell you a state
 
 $GLOBALS['stateNames'] = array(
     "Alabama", "Alaska", "Arizona", "Arkansas", "California",
index 41c401c..eb0b09a 100644 (file)
@@ -90,30 +90,32 @@ $s->compress_response = true;
 
 // Out-of-band information: let the client manipulate the server operations.
 // We do this to help the testsuite script: do not reproduce in production!
-if (isset($_GET['RESPONSE_ENCODING'])) {
-    $s->response_charset_encoding = $_GET['RESPONSE_ENCODING'];
-}
-if (isset($_GET['DETECT_ENCODINGS'])) {
-    PhpXmlRpc::$xmlrpc_detectencodings = $_GET['DETECT_ENCODINGS'];
-}
-if (isset($_GET['EXCEPTION_HANDLING'])) {
-    $s->exception_handling = $_GET['EXCEPTION_HANDLING'];
-}
-if (isset($_GET['FORCE_AUTH'])) {
-    // We implement both  Basic and Digest auth in php to avoid having to set it up in a vhost.
-    // Code taken from php.net
-    // NB: we do NOT check for valid credentials!
-    if ($_GET['FORCE_AUTH'] == 'Basic') {
-        if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['REMOTE_USER']) && !isset($_SERVER['REDIRECT_REMOTE_USER'])) {
-            header('HTTP/1.0 401 Unauthorized');
-            header('WWW-Authenticate: Basic realm="Phpxmlrpc Basic Realm"');
-            die('Text visible if user hits Cancel button');
-        }
-    } elseif ($_GET['FORCE_AUTH'] == 'Digest') {
-        if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
-            header('HTTP/1.1 401 Unauthorized');
-            header('WWW-Authenticate: Digest realm="Phpxmlrpc Digest Realm",qop="auth",nonce="'.uniqid().'",opaque="'.md5('Phpxmlrpc Digest Realm').'"');
-            die('Text visible if user hits Cancel button');
+if (defined('TESTMODE')) {
+    if (isset($_GET['RESPONSE_ENCODING'])) {
+        $s->response_charset_encoding = $_GET['RESPONSE_ENCODING'];
+    }
+    if (isset($_GET['DETECT_ENCODINGS'])) {
+        PhpXmlRpc::$xmlrpc_detectencodings = $_GET['DETECT_ENCODINGS'];
+    }
+    if (isset($_GET['EXCEPTION_HANDLING'])) {
+        $s->exception_handling = $_GET['EXCEPTION_HANDLING'];
+    }
+    if (isset($_GET['FORCE_AUTH'])) {
+        // We implement both  Basic and Digest auth in php to avoid having to set it up in a vhost.
+        // Code taken from php.net
+        // NB: we do NOT check for valid credentials!
+        if ($_GET['FORCE_AUTH'] == 'Basic') {
+            if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['REMOTE_USER']) && !isset($_SERVER['REDIRECT_REMOTE_USER'])) {
+                header('HTTP/1.0 401 Unauthorized');
+                header('WWW-Authenticate: Basic realm="Phpxmlrpc Basic Realm"');
+                die('Text visible if user hits Cancel button');
+            }
+        } elseif ($_GET['FORCE_AUTH'] == 'Digest') {
+            if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
+                header('HTTP/1.1 401 Unauthorized');
+                header('WWW-Authenticate: Digest realm="Phpxmlrpc Digest Realm",qop="auth",nonce="' . uniqid() . '",opaque="' . md5('Phpxmlrpc Digest Realm') . '"');
+                die('Text visible if user hits Cancel button');
+            }
         }
     }
 }
index 9334438..a14defa 100644 (file)
@@ -7,6 +7,9 @@
 ini_set('display_errors', true);
 error_reporting(E_ALL);
 
+// Set up a constant which can be used by demo code to tell if the testuite is in action
+const TESTMODE = true;
+
 // Out-of-band information: let the client manipulate the page operations
 if (isset($_COOKIE['PHPUNIT_SELENIUM_TEST_ID']) && extension_loaded('xdebug')) {
     $GLOBALS['PHPUNIT_COVERAGE_DATA_DIRECTORY'] = '/tmp/phpxmlrpc_coverage';