]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Middleware/TrustProxies.php
respective book and chapter structure added.
[bookstack] / app / Http / Middleware / TrustProxies.php
index 69fcbe943bbb825647a5be958b1ead653d7217cd..0fe0247b829e8b4412dcbd42888c1f05bac60708 100644 (file)
@@ -2,8 +2,9 @@
 
 namespace BookStack\Http\Middleware;
 
+use Closure;
+use Illuminate\Http\Middleware\TrustProxies as Middleware;
 use Illuminate\Http\Request;
-use Fideloper\Proxy\TrustProxies as Middleware;
 
 class TrustProxies extends Middleware
 {
@@ -15,15 +16,28 @@ class TrustProxies extends Middleware
     protected $proxies;
 
     /**
-     * The current proxy header mappings.
+     * The headers that should be used to detect proxies.
      *
-     * @var array
+     * @var int
      */
-    protected $headers = [
-        Request::HEADER_FORWARDED => 'FORWARDED',
-        Request::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR',
-        Request::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST',
-        Request::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT',
-        Request::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO',
-    ];
+    protected $headers = Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB;
+
+    /**
+     * Handle the request, Set the correct user-configured proxy information.
+     *
+     * @param Request $request
+     * @param Closure $next
+     *
+     * @return mixed
+     */
+    public function handle(Request $request, Closure $next)
+    {
+        $setProxies = config('app.proxies');
+        if ($setProxies !== '**' && $setProxies !== '*' && $setProxies !== '') {
+            $setProxies = explode(',', $setProxies);
+        }
+        $this->proxies = $setProxies;
+
+        return parent::handle($request, $next);
+    }
 }