public function setUp() { $httpClient = new TestHttpClient(); $this->service = new Service(); $this->service->addModule(new AdminPortalModule(new JsonTpl(), new ServerClient($httpClient, 'serverClient'))); $this->service->addBeforeHook('auth', new NullAuthenticationHook('foo')); }
$tpl->setDefault(['requestUri' => $request->getUri(), 'requestRoot' => $request->getRoot(), 'requestRootUri' => $request->getRootUri()]); $service = new Service($tpl); $service->addBeforeHook('referrer_check', new ReferrerCheckHook()); $service->addAfterHook('no_cache', new NoCacheHook()); // Authentication $authMethod = $config->v('authMethod'); $tpl->addDefault(['authMethod' => $authMethod]); $session = new Session($request->getServerName(), $request->getRoot(), $config->v('secureCookie')); switch ($authMethod) { case 'MellonAuthentication': $service->addBeforeHook('auth', new MellonAuthenticationHook($config->v('MellonAuthentication', 'attribute'))); break; case 'FormAuthentication': $tpl->addDefault(['_show_logout' => true]); $service->addBeforeHook('auth', new FormAuthenticationHook($session, $tpl)); $service->addModule(new FormAuthenticationModule($config->v('FormAuthentication'), $session, $tpl)); break; default: throw new RuntimeException('unsupported authentication mechanism'); } // vpn-server-api $serverClient = new ServerClient(new GuzzleHttpClient(['defaults' => ['auth' => [$config->v('apiUser'), $config->v('apiPass')]]]), $config->v('apiUri')); $service->addBeforehook('two_factor', new TwoFactorHook($session, $tpl, $serverClient)); // two factor module $twoFactorModule = new TwoFactorModule($serverClient, $session, $tpl); $service->addModule($twoFactorModule); $adminPortalModule = new AdminPortalModule($tpl, $serverClient); $service->addModule($adminPortalModule); $service->run($request)->send(); } catch (Exception $e) { $logger->error($e->getMessage());
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); $groupProviders[] = new $groupProviderClass($dataDir, $config); } } $service->addModule(new GroupsModule($groupProviders, $logger)); $service->addModule(new InfoModule($config)); $service->run($request)->send(); } catch (Exception $e) { $logger->error($e->getMessage());