/**
  * @param \Psr\Http\Message\ServerRequestInterface $request
  * @param \OAuth2\Grant\GrantTypeResponseInterface $grant_type_response
  *
  * @throws \OAuth2\Exception\BaseExceptionInterface
  *
  * @return \OAuth2\Client\ClientInterface
  */
 private function findClient(ServerRequestInterface $request, GrantTypeResponseInterface $grant_type_response)
 {
     if (null === $grant_type_response->getClientPublicId()) {
         $client = $this->getTokenEndpointAuthMethodManager()->findClient($request);
     } else {
         $client_public_id = $grant_type_response->getClientPublicId();
         $client = $this->getClientManager()->getClient($client_public_id);
     }
     if (!$client instanceof ClientInterface) {
         throw $this->getTokenEndpointAuthMethodManager()->buildAuthenticationException($request);
     }
     return $client;
 }