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;
         }


Reply via email to