Fixed issue with LV 5.6 upgrade

get current route uri was broken for global
middlewares, thus CORS middleware got broken

Change-Id: Iaf7a244e67afd8b0f007364f18e5de1ba5af64f1
This commit is contained in:
Sebastian Marcet 2019-01-09 12:27:19 -03:00
parent 609ec9c7ce
commit 2d3d20152a
4 changed files with 29 additions and 28 deletions

View File

@ -1,20 +1,18 @@
<?php namespace libs\utils;
/**
* Copyright 2015 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
* Copyright 2015 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Log;
/**
* Class RequestUtils
* @package libs\utils
@ -22,23 +20,26 @@ use Illuminate\Support\Facades\Log;
final class RequestUtils {
/**
* @param \Illuminate\Http\Request $request
* @return bool|string
*/
public static function getCurrentRoutePath()
{
try
{
$route_path = Route::getCurrentRoute()->uri();
public static function getCurrentRoutePath($request)
{
try
{
$route = Route::getRoutes()->match($request);
if(is_null($route)) return false;
$route_path = $route->uri();
if (strpos($route_path, '/') != 0)
$route_path = '/' . $route_path;
return $route_path;
}
catch (\Exception $ex)
{
Log::error($ex);
}
return false;
}
}
catch (\Exception $ex)
{
Log::error($ex);
}
return false;
}
}

View File

@ -157,7 +157,7 @@ class CORSMiddleware
$real_method = $request->headers->get('Access-Control-Request-Method');
$request->setMethod($real_method);
$route_path = RequestUtils::getCurrentRoutePath();
$route_path = RequestUtils::getCurrentRoutePath($request);
if (!$route_path || !$this->checkEndPoint($route_path, $real_method))
{
$response = new Response();

View File

@ -86,7 +86,7 @@ class OAuth2BearerAccessTokenRequestValidator
try {
$route = RequestUtils::getCurrentRoutePath();
$route = RequestUtils::getCurrentRoutePath($request);
if (!$route) {
throw new OAuth2ResourceServerException(
400,

View File

@ -62,7 +62,7 @@ final class RateLimitMiddleware extends ThrottleRequests
*/
public function handle($request, Closure $next, $max_attempts = 0, $decay_minutes = 0)
{
$route = RequestUtils::getCurrentRoutePath();
$route = RequestUtils::getCurrentRoutePath($request);
$method = $request->getMethod();
$endpoint = $this->endpoint_repository->getApiEndpointByUrlAndMethod($route, $method);
$key = $this->resolveRequestSignature($request);