diff --git a/lib/private/AppFramework/App.php b/lib/private/AppFramework/App.php index 25708245e2..abb779ca97 100644 --- a/lib/private/AppFramework/App.php +++ b/lib/private/AppFramework/App.php @@ -84,9 +84,9 @@ class App { */ public static function main(string $controllerName, string $methodName, DIContainer $container, array $urlParams = null) { if (!is_null($urlParams)) { - $container[IRequest::class]->setUrlParameters($urlParams); + $container->query(IRequest::class)->setUrlParameters($urlParams); } else if (isset($container['urlParams']) && !is_null($container['urlParams'])) { - $container[IRequest::class]->setUrlParameters($container['urlParams']); + $container->query(IRequest::class)->setUrlParameters($container['urlParams']); } $appName = $container['AppName']; diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 9acc5bd092..6991d12da7 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -47,22 +47,21 @@ use OC\AppFramework\Middleware\Security\SecurityMiddleware; use OC\AppFramework\Middleware\SessionMiddleware; use OC\AppFramework\Utility\SimpleContainer; use OC\Core\Middleware\TwoFactorMiddleware; -use OC\RichObjectStrings\Validator; use OC\ServerContainer; use OCP\AppFramework\Http\IOutput; use OCP\AppFramework\IAppContainer; use OCP\AppFramework\QueryException; +use OCP\AppFramework\Utility\IControllerMethodReflector; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Files\Folder; use OCP\Files\IAppData; use OCP\GlobalScale\IConfig; use OCP\IL10N; use OCP\ILogger; +use OCP\IRequest; use OCP\IServerContainer; use OCP\ISession; use OCP\IUserSession; -use OCP\RichObjectStrings\IValidator; -use OCP\Encryption\IManager; use OCA\WorkflowEngine\Manager; class DIContainer extends SimpleContainer implements IAppContainer { @@ -86,6 +85,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $this['AppName'] = $appName; $this['urlParams'] = $urlParams; + $this->registerAlias('Request', IRequest::class); + /** @var \OC\ServerContainer $server */ if ($server === null) { $server = \OC::$server; @@ -185,7 +186,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { return new SecurityMiddleware( $c['Request'], - $c['ControllerMethodReflector'], + $server->query(IControllerMethodReflector::class), $server->getNavigationManager(), $server->getURLGenerator(), $server->getLogger(), @@ -205,7 +206,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $server = $app->getServer(); return new OC\AppFramework\Middleware\Security\PasswordConfirmationMiddleware( - $c['ControllerMethodReflector'], + $c->query(IControllerMethodReflector::class), $server->getSession(), $server->getUserSession(), $server->query(ITimeFactory::class) @@ -217,7 +218,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $server = $app->getServer(); return new OC\AppFramework\Middleware\Security\BruteForceMiddleware( - $c['ControllerMethodReflector'], + $c->query(IControllerMethodReflector::class), $server->getBruteForceThrottler(), $server->getRequest() ); @@ -230,7 +231,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { return new RateLimitingMiddleware( $server->getRequest(), $server->getUserSession(), - $c['ControllerMethodReflector'], + $c->query(IControllerMethodReflector::class), $c->query(OC\Security\RateLimiting\Limiter::class) ); }); @@ -238,7 +239,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $this->registerService('CORSMiddleware', function($c) { return new CORSMiddleware( $c['Request'], - $c['ControllerMethodReflector'], + $c->query(IControllerMethodReflector::class), $c->query(IUserSession::class), $c->getServer()->getBruteForceThrottler() ); @@ -247,7 +248,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $this->registerService('SessionMiddleware', function($c) use ($app) { return new SessionMiddleware( $c['Request'], - $c['ControllerMethodReflector'], + $c->query(IControllerMethodReflector::class), $app->getServer()->getSession() ); }); @@ -257,7 +258,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $userSession = $app->getServer()->getUserSession(); $session = $app->getServer()->getSession(); $urlGenerator = $app->getServer()->getURLGenerator(); - $reflector = $c['ControllerMethodReflector']; + $reflector = $c->query(IControllerMethodReflector::class); $request = $app->getServer()->getRequest(); return new TwoFactorMiddleware($twoFactorManager, $userSession, $session, $urlGenerator, $reflector, $request); }); @@ -271,7 +272,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $this->registerService(OC\AppFramework\Middleware\Security\SameSiteCookieMiddleware::class, function (SimpleContainer $c) { return new OC\AppFramework\Middleware\Security\SameSiteCookieMiddleware( $c['Request'], - $c['ControllerMethodReflector'] + $c->query(IControllerMethodReflector::class) ); }); diff --git a/lib/private/AppFramework/Utility/SimpleContainer.php b/lib/private/AppFramework/Utility/SimpleContainer.php index 47a6f95f74..6c2844e681 100644 --- a/lib/private/AppFramework/Utility/SimpleContainer.php +++ b/lib/private/AppFramework/Utility/SimpleContainer.php @@ -176,5 +176,4 @@ class SimpleContainer extends Container implements IContainer { } return $name; } - } diff --git a/tests/lib/AppFramework/AppTest.php b/tests/lib/AppFramework/AppTest.php index 93b8768e67..b31f442877 100644 --- a/tests/lib/AppFramework/AppTest.php +++ b/tests/lib/AppFramework/AppTest.php @@ -25,6 +25,8 @@ namespace Test\AppFramework; use OC\AppFramework\App; +use OC\AppFramework\Http\Dispatcher; +use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\Response; @@ -60,16 +62,9 @@ class AppTest extends \Test\TestCase { parent::setUp(); $this->container = new \OC\AppFramework\DependencyInjection\DIContainer('test', array()); - $this->controller = $this->getMockBuilder( - 'OCP\AppFramework\Controller') - ->disableOriginalConstructor() - ->getMock(); - $this->dispatcher = $this->getMockBuilder( - 'OC\AppFramework\Http\Dispatcher') - ->disableOriginalConstructor() - ->getMock(); - - $this->io = $this->getMockBuilder('OCP\\AppFramework\\Http\\IOutput')->getMock(); + $this->controller = $this->createMock(Controller::class); + $this->dispatcher = $this->createMock(Dispatcher::class); + $this->io = $this->createMock(Http\IOutput::class); $this->headers = array('key' => 'value'); $this->output = 'hi'; diff --git a/tests/lib/AppFramework/DependencyInjection/DIContainerTest.php b/tests/lib/AppFramework/DependencyInjection/DIContainerTest.php index d4581aaaf2..5f089e9601 100644 --- a/tests/lib/AppFramework/DependencyInjection/DIContainerTest.php +++ b/tests/lib/AppFramework/DependencyInjection/DIContainerTest.php @@ -40,7 +40,6 @@ class DIContainerTest extends \Test\TestCase { /** @var DIContainer|\PHPUnit_Framework_MockObject_MockObject */ private $container; - private $api; protected function setUp(){ parent::setUp(); @@ -78,12 +77,8 @@ class DIContainerTest extends \Test\TestCase { public function testMiddlewareDispatcherIncludesSecurityMiddleware(){ $this->container['Request'] = new Request( ['method' => 'GET'], - $this->getMockBuilder(ISecureRandom::class) - ->disableOriginalConstructor() - ->getMock(), - $this->getMockBuilder(IConfig::class) - ->disableOriginalConstructor() - ->getMock() + $this->createMock(ISecureRandom::class), + $this->createMock(IConfig::class) ); $security = $this->container['SecurityMiddleware']; $dispatcher = $this->container['MiddlewareDispatcher'];