Author: bhofmann
Date: Thu Aug 19 14:46:53 2010
New Revision: 987167
URL: http://svn.apache.org/viewvc?rev=987167&view=rev
Log:
fixes for content rewriter and proxy requests
- disabled additional utf8 decoding for non text files (like images) in
MakeRequest
- allowed .* as a possible contentrewrite include or exclude url
- added security token to resulten proxy request from a content rewrite
Modified:
shindig/trunk/php/src/gadgets/GadgetContext.php
shindig/trunk/php/src/gadgets/MakeRequest.php
shindig/trunk/php/src/gadgets/rewrite/ContentRewriter.php
Modified: shindig/trunk/php/src/gadgets/GadgetContext.php
URL:
http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/GadgetContext.php?rev=987167&r1=987166&r2=987167&view=diff
==============================================================================
--- shindig/trunk/php/src/gadgets/GadgetContext.php (original)
+++ shindig/trunk/php/src/gadgets/GadgetContext.php Thu Aug 19 14:46:53 2010
@@ -39,6 +39,7 @@ class GadgetContext {
protected $containerConfig = null;
protected $container = null;
protected $refreshInterval;
+ protected $rawToken;
public function __construct($renderingContext) {
// Rendering context is set by the calling event handler (either GADGET or
CONTAINER)
@@ -261,6 +262,22 @@ class GadgetContext {
}
/**
+ * returns raw encoded token
+ *
+ * @return string
+ */
+ public function getRawToken() {
+ if (! $this->rawToken) {
+ $this->rawToken = isset($_GET["st"]) ? $_GET["st"] : '';
+ }
+ if (! $this->rawToken) {
+ $this->rawToken = isset($_POST['st']) ? $_POST['st'] : '';
+ }
+
+ return $this->rawToken;
+ }
+
+ /**
* Extracts the 'st' token from the GET or POST params and calls the
* signer to validate the token
*
@@ -271,10 +288,9 @@ class GadgetContext {
if ($signer == null) {
return null;
}
- $token = isset($_GET["st"]) ? $_GET["st"] : '';
- if (! isset($token) || $token == '') {
- $token = isset($_POST['st']) ? $_POST['st'] : '';
- }
+
+ $token = $this->getRawToken();
+
return $this->validateToken($token, $signer);
}
Modified: shindig/trunk/php/src/gadgets/MakeRequest.php
URL:
http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/MakeRequest.php?rev=987167&r1=987166&r2=987167&view=diff
==============================================================================
--- shindig/trunk/php/src/gadgets/MakeRequest.php (original)
+++ shindig/trunk/php/src/gadgets/MakeRequest.php Thu Aug 19 14:46:53 2010
@@ -111,7 +111,8 @@ class MakeRequest {
break;
}
}
- if (strpos($result->getResponseContent(), '\u')) {
+ if ((strpos($result->getContentType(), 'text') !== false ||
strpos($result->getContentType(), 'application') !== false)
+ && strpos($result->getResponseContent(), '\u')) {
$result->setResponseContent($this->decodeUtf8($result->getResponseContent()));
}
Modified: shindig/trunk/php/src/gadgets/rewrite/ContentRewriter.php
URL:
http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/rewrite/ContentRewriter.php?rev=987167&r1=987166&r2=987167&view=diff
==============================================================================
--- shindig/trunk/php/src/gadgets/rewrite/ContentRewriter.php (original)
+++ shindig/trunk/php/src/gadgets/rewrite/ContentRewriter.php Thu Aug 19
14:46:53 2010
@@ -68,6 +68,7 @@ class ContentRewriter extends DomRewrite
$url = Config::get('web_prefix') . '/gadgets/proxy?url=' . urlencode($url);
$url .= '&refresh=' . (isset($this->rewrite['expires']) &&
is_numeric($this->rewrite['expires']) ? $this->rewrite['expires'] : '3600');
$url .= '&gadget=' . urlencode($this->context->getUrl());
+ $url .= '&st=' . urlencode($this->context->getToken());
return $url;
}
@@ -80,7 +81,7 @@ class ContentRewriter extends DomRewrite
$included = $excluded = false;
if (isset($this->rewrite['include-url'])) {
foreach ($this->rewrite['include-url'] as $includeUrl) {
- if ($includeUrl == '*' || strpos($url, $includeUrl) !== false) {
+ if ($includeUrl == '*' || $includeUrl == '.*' || strpos($url,
$includeUrl) !== false) {
$included = true;
break;
}
@@ -88,7 +89,7 @@ class ContentRewriter extends DomRewrite
}
if (isset($this->rewrite['exclude-url'])) {
foreach ($this->rewrite['exclude-url'] as $excludeUrl) {
- if ($excludeUrl == '*' || strpos($url, $excludeUrl) !== false) {
+ if ($excludeUrl == '*' || $includeUrl == '.*' || strpos($url,
$excludeUrl) !== false) {
$excluded = true;
break;
}