use SURFnet\VPN\Common\Http\FormAuthenticationModule; use SURFnet\VPN\Common\Http\HtmlResponse; use SURFnet\VPN\Common\Http\MellonAuthenticationHook; use SURFnet\VPN\Common\Http\NoCacheHook; use SURFnet\VPN\Common\Http\ReferrerCheckHook; use SURFnet\VPN\Common\Http\Request; use SURFnet\VPN\Common\Http\Service; use SURFnet\VPN\Common\Http\Session; use SURFnet\VPN\Common\Http\TwoFactorHook; use SURFnet\VPN\Common\Http\TwoFactorModule; use SURFnet\VPN\Common\HttpClient\GuzzleHttpClient; use SURFnet\VPN\Common\HttpClient\ServerClient; use SURFnet\VPN\Common\Logger; $logger = new Logger('vpn-admin-portal'); try { $request = new Request($_SERVER, $_GET, $_POST); if (false === ($instanceId = getenv('VPN_INSTANCE_ID'))) { $instanceId = $request->getServerName(); } $dataDir = sprintf('%s/data/%s', dirname(__DIR__), $instanceId); if (!file_exists($dataDir)) { if (false === @mkdir($dataDir, 0700, true)) { throw new RuntimeException(sprintf('unable to create folder "%s"', $dataDir)); } } $config = Config::fromFile(sprintf('%s/config/%s/config.yaml', dirname(__DIR__), $instanceId)); $templateDirs = [sprintf('%s/views', dirname(__DIR__)), sprintf('%s/config/%s/views', dirname(__DIR__), $instanceId)]; $templateCache = null; if ($config->v('enableTemplateCache')) { $templateCache = sprintf('%s/tpl', $dataDir); }
use SURFnet\VPN\Server\Api\CommonNamesModule; use SURFnet\VPN\Server\Api\GroupsModule; use SURFnet\VPN\Server\Api\InfoModule; use SURFnet\VPN\Server\Api\LogModule; use SURFnet\VPN\Server\Api\OpenVpnModule; use SURFnet\VPN\Common\Http\Service; use SURFnet\VPN\Server\Api\Users; use SURFnet\VPN\Server\Api\UsersModule; use SURFnet\VPN\Server\InstanceConfig; use SURFnet\VPN\Common\Logger; use SURFnet\VPN\Server\OpenVpn\ManagementSocket; use SURFnet\VPN\Server\OpenVpn\ServerManager; $logger = new Logger('vpn-server-api'); try { // this is provided by Apache, using CanonicalName $request = new Request($_SERVER, $_GET, $_POST); $instanceId = $request->getServerName(); $dataDir = sprintf('%s/data/%s', dirname(__DIR__), $instanceId); $configDir = sprintf('%s/config/%s', dirname(__DIR__), $instanceId); $config = InstanceConfig::fromFile(sprintf('%s/config.yaml', $configDir)); $service = new Service(); $basicAuthentication = new BasicAuthenticationHook($config->v('apiConsumers'), 'vpn-server-api'); $service->addBeforeHook('auth', $basicAuthentication); $service->addModule(new LogModule($dataDir)); $service->addModule(new OpenVpnModule(new ServerManager($config, new ManagementSocket(), $logger))); $service->addModule(new CommonNamesModule(new CommonNames(sprintf('%s/common_names', $dataDir)), $logger)); $service->addModule(new UsersModule(new Users(sprintf('%s/users', $dataDir)), $logger)); $groupProviders = []; if ($config->e('groupProviders')) { foreach (array_keys($config->v('groupProviders')) as $groupProviderId) { $groupProviderClass = sprintf('SURFnet\\VPN\\Server\\GroupProvider\\%s', $groupProviderId);