]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Change a few things around for CORS header output
authorZach Copley <zach@status.net>
Fri, 8 Jul 2011 00:19:59 +0000 (17:19 -0700)
committerZach Copley <zach@status.net>
Fri, 8 Jul 2011 00:19:59 +0000 (17:19 -0700)
actions/hostmeta.php
actions/userxrd.php
config.php.sample
lib/default.php
lib/xrdaction.php

index 4c9e9b8ae5cab2ce558f70975cab2e6b105961aa..fdebcf13af464fdd2c7deca70b28dfcda5288d10 100644 (file)
@@ -44,6 +44,7 @@ class HostMetaAction extends Action
     function handle()
     {
         parent::handle();
+        common_debug("GARGARGAR");
 
         $domain = common_config('site', 'server');
 
@@ -59,11 +60,13 @@ class HostMetaAction extends Action
             Event::handle('EndHostMetaLinks', array(&$xrd->links));
         }
 
-        global $config;
-        if($config['site']['cors'] === true){
+        // Output Cross-Origin Resource Sharing (CORS) header
+        if (common_config('discovery', 'cors')) {
             header('Access-Control-Allow-Origin: *');
         }
+
         header('Content-type: application/xrd+xml');
+
         print $xrd->toXML();
     }
 }
index 4ba7f91c7e0943cde39aa3ab1faa4241919ea356..6fa738a5c98061d264a719d4be855d60c9ae3ab6 100644 (file)
@@ -31,9 +31,6 @@ class UserxrdAction extends XrdAction
     {
         parent::prepare($args);
         global $config;
-        if($config['site']['cors'] === true){
-            header('Access-Control-Allow-Origin: *');
-        }
 
         $this->uri = $this->trimmed('uri');
         $this->uri = self::normalize($this->uri);
index 8ddac67417fd15abc83bf497ba848bbddc6e8b77..87a1977b5f589318d5ad409a6b6f30550ee7ad80 100644 (file)
@@ -40,8 +40,12 @@ $config['site']['path'] = 'statusnet';
 // $config['site']['inviteonly'] = true;
 // Make the site invisible to  non-logged-in users
 // $config['site']['private'] = true;
-// Allow Cross-Origin Resource Sharing
-// $config['site']['cors'] = true;
+
+// Allow Cross-Origin Resource Sharing (CORS) for service discovery
+// (host-meta, XRD, etc.) Useful for AJAXy client applications. Should
+// probably NOT be on for private / intranet sites but OK for public sites.
+// Default is off.
+// $config['discovery']['cors'] = true;
 
 // If your web server supports X-Sendfile (Apache with mod_xsendfile,
 // lighttpd, nginx), you can enable X-Sendfile support for better
index 51d62ed767de2ba735c8e8c83993076ce91d39cc..a1f1ed6d8ff79d5cd51c81ea0b8d30a04e18d9e4 100644 (file)
@@ -61,7 +61,6 @@ $default =
               'textlimit' => 140,
               'indent' => true,
               'use_x_sendfile' => false,
-              'cors' => true,
               'notice' => null, // site wide notice text
               'build' => 1, // build number, for code-dependent cache
               'minify' => true, // true to use the minified versions of JS files; false to use orig files. Can aid during development
@@ -350,4 +349,6 @@ $default =
               ),
         'router' =>
         array('cache' => true), // whether to cache the router object. Defaults to true, turn off for devel
+        'discovery' =>
+        array('cors' => false) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
     );
index a0e7a1c4151f5caf7aacf72bed25fd5a3ceb9fc4..3d55204f41ef7ed6348c749256ab53cd18b1d84b 100644 (file)
@@ -117,7 +117,12 @@ class XrdAction extends Action
             Event::handle('EndXrdActionLinks', array(&$xrd, $this->user));
         }
 
+        if (common_config('discovery', 'cors')) {
+            header('Access-Control-Allow-Origin: *');
+        }
+
         header('Content-type: application/xrd+xml');
+
         print $xrd->toXML();
     }