mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-08-18 08:18:11 +02:00
Since authentication is now performed even for static resources, there's no reason anymore to support implicit authentication. This also limits authentication attempts to a single one, previously failed attempts were repeated. Requiring authentication during bootstrapping, i.e. before authentication has been performed, will now trigger a deprecation notice. refs #5265
143 lines
2.7 KiB
PHP
143 lines
2.7 KiB
PHP
<?php
|
|
/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
|
|
|
|
namespace Icinga\Application;
|
|
|
|
require_once dirname(__FILE__) . '/ApplicationBootstrap.php';
|
|
|
|
use Icinga\Authentication\Auth;
|
|
use Icinga\User;
|
|
use Icinga\Web\Request;
|
|
use Icinga\Web\Response;
|
|
use ipl\I18n\NoopTranslator;
|
|
use ipl\I18n\StaticTranslator;
|
|
|
|
/**
|
|
* Use this if you want to make use of Icinga functionality in other web projects
|
|
*
|
|
* Usage example:
|
|
* <code>
|
|
* use Icinga\Application\EmbeddedWeb;
|
|
* EmbeddedWeb::start();
|
|
* </code>
|
|
*/
|
|
class EmbeddedWeb extends ApplicationBootstrap
|
|
{
|
|
/**
|
|
* Request
|
|
*
|
|
* @var Request
|
|
*/
|
|
protected $request;
|
|
|
|
/**
|
|
* Response
|
|
*
|
|
* @var Response
|
|
*/
|
|
protected $response;
|
|
|
|
/**
|
|
* User object
|
|
*
|
|
* @var ?User
|
|
*/
|
|
protected ?User $user = null;
|
|
|
|
/**
|
|
* Get the request
|
|
*
|
|
* @return Request
|
|
*/
|
|
public function getRequest()
|
|
{
|
|
return $this->request;
|
|
}
|
|
|
|
/**
|
|
* Get the response
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function getResponse()
|
|
{
|
|
return $this->response;
|
|
}
|
|
|
|
/**
|
|
* Embedded bootstrap parts
|
|
*
|
|
* @see ApplicationBootstrap::bootstrap
|
|
*
|
|
* @return $this
|
|
*/
|
|
protected function bootstrap()
|
|
{
|
|
return $this
|
|
->setupLogging()
|
|
->setupErrorHandling()
|
|
->loadLibraries()
|
|
->loadConfig()
|
|
->setupLogger()
|
|
->setupRequest()
|
|
->setupResponse()
|
|
->setupTimezone()
|
|
->prepareFakeInternationalization()
|
|
->setupModuleManager()
|
|
->loadEnabledModules()
|
|
->setupUserBackendFactory()
|
|
->setupUser()
|
|
->registerApplicationHooks();
|
|
}
|
|
|
|
/**
|
|
* Set the request
|
|
*
|
|
* @return $this
|
|
*/
|
|
protected function setupRequest()
|
|
{
|
|
$this->request = new Request();
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Set the response
|
|
*
|
|
* @return $this
|
|
*/
|
|
protected function setupResponse()
|
|
{
|
|
$this->response = new Response();
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Create user object
|
|
*
|
|
* @return $this
|
|
*/
|
|
protected function setupUser(): static
|
|
{
|
|
$auth = Auth::getInstance();
|
|
if ($auth->authenticate()->isAuthenticated()) {
|
|
$this->user = $auth->getUser();
|
|
$this->getRequest()->setUser($this->user);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Prepare fake internationalization
|
|
*
|
|
* @return $this
|
|
*/
|
|
protected function prepareFakeInternationalization()
|
|
{
|
|
StaticTranslator::$instance = new NoopTranslator();
|
|
|
|
return $this;
|
|
}
|
|
}
|