/** * {@inheritdoc} */ public function createAuthorizationFromRequest(ServerRequestInterface $request) { $parameters = $this->authorization_request_loader->loadParametersFromRequest($request); $client = $parameters['client']; $this->getParameterCheckerManager()->checkParameters($client, $parameters); $types = $this->getResponseTypes($parameters); $this->checkResponseTypeAllowedForTheClient($client, $parameters); $response_mode = $this->getResponseMode($parameters, $types); $redirect_uri = $parameters['redirect_uri']; $scope = array_key_exists('scope', $parameters) ? $parameters['scope'] : []; return new Authorization($parameters, $client, $types, $response_mode, $redirect_uri, $scope); }
/** * @param \OAuth2\Endpoint\Authorization\AuthorizationRequestLoaderInterface $authorization_request_loader */ public function setAuthorizationRequestLoader(AuthorizationRequestLoaderInterface $authorization_request_loader) { $this->set('request_parameter_supported', $authorization_request_loader->isRequestObjectSupportEnabled()); if (true === $authorization_request_loader->isRequestObjectSupportEnabled()) { $this->set('request_uri_parameter_supported', $authorization_request_loader->isRequestObjectReferenceSupportEnabled()); if (true === $authorization_request_loader->isRequestObjectReferenceSupportEnabled()) { $this->set('require_request_uri_registration', $authorization_request_loader->isRequestUriRegistrationRequired()); } $methods = ['getSupportedSignatureAlgorithms' => 'request_object_signing_alg_values_supported', 'getSupportedKeyEncryptionAlgorithms' => 'request_object_encryption_alg_values_supported', 'getSupportedContentEncryptionAlgorithms' => 'request_object_encryption_enc_values_supported']; foreach ($methods as $method => $key) { $value = $authorization_request_loader->{$method}(); if (!empty($value)) { $this->set($key, $value); } } } }