public function testRequestPost() { $requestLine = 'POST /referees'; $headers = ['Content-Type' => 'application/json']; $data = ['name' => 'Art H', 'roles' => ['Developer']]; $request = new Request($requestLine, $headers, json_encode($data)); $item = $request->getParsedBody(); $this->assertEquals('Art H', $item['name']); }
public function testAuthTokenListener() { $jwtCoder = $this->container->get('jwt_coder'); $roleHierarchy = $this->createRoleHeirarchy(); $listener = new AuthTokenListener($roleHierarchy, $jwtCoder); $jwt = $jwtCoder->encode(['username' => '*****@*****.**', 'roles' => ['ROLE_USER']]); $headers = ['Authorization' => $jwt]; $request = new Request('GET /api/referees', $headers); $request->setAttribute('_roles', 'ROLE_USER'); $event = new KernelRequestEvent($request); $listener->onKernelRequestAuthToken($event); $authToken = $request->getAttribute('authToken'); $this->assertEquals('*****@*****.**', $authToken->getUsername()); $listener->onKernelRequestAuthorize($event); }
public function postAction(Request $request) { $requestPayload = $request->getParsedBody(); if (isset($requestPayload['oauth_token'])) { $requestPayload['username'] = '******'; $requestPayload['password'] = '******'; } $username = $requestPayload['username']; $password = $requestPayload['password']; $user = $this->userProvider->loadUserByUsername($username); $salt = isset($user['salt']) ? $user['salt'] : null; $this->userPasswordEncoder->isPasswordValid($user['password'], $password, $salt); // Need array_values because index can get messed up $roles = is_array($user['roles']) ? array_values($user['roles']) : [$user['roles']]; $jwtPayload = ['iat' => time(), 'username' => $username, 'roles' => $roles, 'person_name' => $user['person_name'], 'person_guid' => $user['person_guid']]; $jwt = $this->jwtCoder->encode($jwtPayload); $jwtPayload['auth_token'] = $jwt; return new ResponseJson($jwtPayload, 201); }
<?php error_reporting(E_ALL); require __DIR__ . '/../vendor/autoload.php'; use Cerad\Component\HttpMessage\Request as CeradRequest; use Cerad\Component\HttpMessage\Response; use Cerad\Component\HttpMessage\ResponseJson; use Symfony\Component\HttpFoundation\Request as SymfonyRequest; // Symfony\Component\HttpFoundation\Response as SymfonyResponse; // Symfony\Component\HttpFoundation\JsonResponse as SymfonyJsonResponse; $ceradRequest = new CeradRequest($_SERVER); $ceradUri = $ceradRequest->getUri(); $ceradServer = $ceradRequest->getServerParams(); $symfonyRequest = SymfonyRequest::createFromGlobals(); $user = '******'; $baseHref = $ceradRequest->getBaseHref(); $_serverPathInfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : 'UNDEFINED'; if ($ceradRequest->isMethodPost()) { $content = $ceradRequest->getParsedBody(); $user = $content['user']; if ($ceradRequest->isJson()) { $response = new ResponseJson($content, 201); $response->send(); return; } if ($ceradRequest->isForm()) { // Redirect if had a session to store things in } } ob_start(); require 'app.html';
public function testScriptNameMatchesRequestPath() { $server = ['SCRIPT_NAME' => '/referees', 'REQUEST_URI' => '/referees']; $request = new Request($server); $this->assertEquals('/', $request->getBaseHref()); $this->assertEquals('/referees', $request->getRoutePath()); }