loadSocialMiddleware($middlewareQueue); $this->loadAuthenticationMiddleware($middlewareQueue, $authenticationServiceProvider); $this->load2faMiddleware($middlewareQueue); return $this->loadAuthorizationMiddleware($middlewareQueue, $authorizationServiceProvider); } /** * Load social middlewares if enabled. Based on config 'Users.Social.login' * * @param \Cake\Http\MiddlewareQueue $middlewareQueue The middleware queue to update. * @return void */ protected function loadSocialMiddleware(MiddlewareQueue $middlewareQueue) { if (Configure::read('Users.Social.login')) { $middlewareQueue ->add(SocialAuthMiddleware::class) ->add(SocialEmailMiddleware::class); } } /** * Load authentication middleware * * @param \Cake\Http\MiddlewareQueue $middlewareQueue queue of middleware * @param \Authentication\AuthenticationServiceProviderInterface $authenticationServiceProvider Authentication service provider * @return void */ protected function loadAuthenticationMiddleware( MiddlewareQueue $middlewareQueue, AuthenticationServiceProviderInterface $authenticationServiceProvider ) { $authentication = new AuthenticationMiddleware($authenticationServiceProvider); $middlewareQueue->add($authentication); } /** * Load OneTimePasswordAuthenticatorMiddleware if enabled. Based on config 'OneTimePasswordAuthenticator.login' * * @param \Cake\Http\MiddlewareQueue $middlewareQueue queue of middleware * @return void */ protected function load2faMiddleware(MiddlewareQueue $middlewareQueue) { if ( Configure::read('OneTimePasswordAuthenticator.login') !== false || Configure::read('U2f.enabled') !== false ) { $middlewareQueue->add(TwoFactorMiddleware::class); } } /** * Load authorization middleware based on Auth.Authorization. * * @param \Cake\Http\MiddlewareQueue $middlewareQueue queue of middleware * @param \Authorization\AuthorizationServiceProviderInterface $authorizationServiceProvider Authorization service provider * @return \Cake\Http\MiddlewareQueue */ protected function loadAuthorizationMiddleware( MiddlewareQueue $middlewareQueue, AuthorizationServiceProviderInterface $authorizationServiceProvider ) { if (Configure::read('Auth.Authorization.enable') === false) { return $middlewareQueue; } $middlewareQueue->add( new AuthorizationMiddleware( $authorizationServiceProvider, Configure::read('Auth.AuthorizationMiddleware') ) ); if (Configure::read('Auth.AuthorizationMiddleware.requireAuthorizationCheck') !== false) { $middlewareQueue->add(new RequestAuthorizationMiddleware()); } return $middlewareQueue; } }