override host name when behind a reverse proxy
----------------------------------------------
Key: SHINDIG-1111
URL: https://issues.apache.org/jira/browse/SHINDIG-1111
Project: Shindig
Issue Type: Bug
Components: PHP
Affects Versions: 1.0
Environment: GNU/Linux
Reporter: Loic Dachary
When the shindig server sits behind a reverse proxy, OAuthRequest will be built
using the host name used by the reverse proxy instead of the extrenal name. A
configuration parameter is added (with the following tentative patch) to allow
overriding this default with a known domain name. If this can't be done the
signature will always be wrong ( because the hostname is part of the
base_string ).
diff -r ef48cba39a7d usr/src/shindig-1.0-incubating-php/config/container.php
--- a/usr/src/shindig-1.0-incubating-php/config/container.php Sun Jul 12
17:08:43 2009 +0200
+++ b/usr/src/shindig-1.0-incubating-php/config/container.php Mon Jul 13
23:37:13 2009 +0200
@@ -137,5 +137,6 @@
'proxy' => '',
// If your server is behind a reverse proxy, set the real hostname here
+ 'http_host' => NULL
+ // 'http_host' => 'shindig.opensocial.dachary.org'
);
diff -r ef48cba39a7d
usr/src/shindig-1.0-incubating-php/src/social/servlet/ApiServlet.php
--- a/usr/src/shindig-1.0-incubating-php/src/social/servlet/ApiServlet.php
Sun Jul 12 17:08:43 2009 +0200
+++ b/usr/src/shindig-1.0-incubating-php/src/social/servlet/ApiServlet.php
Mon Jul 13 23:37:13 2009 +0200
@@ -75,7 +75,9 @@
public function getSecurityToken() {
// see if we have an OAuth request
- $request = OAuthRequest::from_request();
+ $scheme = (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") ?
'http' : 'https';
+ $http_url = $scheme . '://' . ( Config::get('http_host') ?
Config::get('http_host') : $_SERVER['HTTP_HOST']) . $_SERVER['REQUEST_URI'];
+ $request = OAuthRequest::from_request(NULL, $http_url , NULL);
$appUrl = $request->get_parameter('oauth_consumer_key');
$userId = $request->get_parameter('xoauth_requestor_id'); // from Consumer
Request extension (2-legged OAuth)
$signature = $request->get_parameter('oauth_signature');
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.