Esempio n. 1
0
 /**
  * Matches token type against request and returns if it matches
  *
  * @param IRequest $request
  *
  * @throws \OAuth2\Exception\InvalidContentTypeException
  * @throws \OAuth2\Exception\InvalidHttpMethodException
  * @throws \OAuth2\Exception\MalformedTokenException
  * @return boolean
  */
 public function match(IRequest $request)
 {
     // first check request for authorization header
     $header = $request->headers('authorization');
     if ($header) {
         if (!preg_match('~Bearer\\s(\\S+)~', $header, $matches)) {
             throw new MalformedTokenException();
         }
         $this->identifier = $matches[1];
         return true;
     }
     // if is POST check for request (POST BODY) parameters
     if ($accessToken = $request->request('access_token')) {
         if (!($request->isMethod('post') || $request->isMethod('put'))) {
             throw new InvalidHttpMethodException();
         }
         $contentType = $request->headers('content_type');
         if (!$contentType || strpos($contentType, 'application/x-www-form-urlencoded') !== 0) {
             throw new InvalidContentTypeException();
         }
         $this->identifier = $accessToken;
         return true;
     }
     // check query for access token
     if ($accessToken = $request->query('access_token')) {
         $this->identifier = $accessToken;
         return true;
     }
     return false;
 }
Esempio n. 2
0
 /**
  * Does grant type match given request?
  *
  * @param IRequest $request
  *
  * @return bool
  */
 public function match(IRequest $request)
 {
     if ($request->isMethod('GET')) {
         return $request->query('response_type') === 'token';
     }
     return false;
 }
 function it_issues_access_token_using_grant_type_of_given_request(IRequest $request, IGrantTypeResolver $grantTypeResolver, IGrantType $grantType, IAccessToken $accessToken)
 {
     $request->isMethod('post')->willReturn(true)->shouldBeCalled();
     $grantTypeResolver->resolve($request)->willReturn($grantType)->shouldBeCalled();
     $grantType->grant($request)->willReturn($accessToken)->shouldBeCalled();
     $this->issueToken($request)->shouldReturnAnInstanceOf('OAuth2\\Storage\\IAccessToken');
 }
 /**
  * Issues access token using grant type from current request
  *
  * @param IRequest $request
  *
  * @return \OAuth2\Storage\IAccessToken
  * @throws \OAuth2\Exception\InvalidHttpMethodException
  */
 public function issueToken(IRequest $request)
 {
     if (!$request->isMethod('post')) {
         throw new InvalidHttpMethodException();
     }
     $grantType = $this->grantTypeResolver->resolve($request);
     return $grantType->grant($request);
 }
 /**
  * Does grant type match given request?
  *
  * @param IRequest $request
  *
  * @return bool
  */
 public function match(IRequest $request)
 {
     if ($request->isMethod('GET')) {
         return $request->query('response_type') === 'code';
     } else {
         return $request->request('grant_type') === 'authorization_code';
     }
 }
 function it_should_return_access_token_identifier_from_token_in_request_body(IRequest $request)
 {
     $request->headers('authorization')->willReturn(null);
     $request->request('access_token')->willReturn('pom');
     $request->isMethod('post')->willReturn(true);
     $request->headers('content_type')->willReturn('application/x-www-form-urlencoded');
     $this->match($request)->shouldReturn(true);
     $this->getAccessToken()->shouldReturn('pom');
 }
 function it_matches_against_request(IRequest $request1, IRequest $request2, IRequest $request3)
 {
     $request1->isMethod('GET')->willReturn(true)->shouldBeCalled();
     $request1->query('response_type')->willReturn('token')->shouldBeCalled();
     $this->match($request1)->shouldReturn(true);
     $request2->isMethod('GET')->willReturn(false)->shouldBeCalled();
     $this->match($request2)->shouldReturn(false);
     $request3->isMethod('GET')->willReturn(true)->shouldBeCalled();
     $request3->query('response_type')->willReturn(null)->shouldBeCalled();
     $this->match($request3)->shouldReturn(false);
 }
 function it_matches_against_request(IRequest $request1, IRequest $request2, IRequest $request3, IRequest $request4)
 {
     $request1->isMethod('GET')->willReturn(true)->shouldBeCalled();
     $request1->query('response_type')->willReturn('code')->shouldBeCalled();
     $this->match($request1)->shouldReturn(true);
     $request2->isMethod('GET')->willReturn(false)->shouldBeCalled();
     $request2->request('grant_type')->willReturn('authorization_code')->shouldBeCalled();
     $this->match($request2)->shouldReturn(true);
     $request3->isMethod('GET')->willReturn(true)->shouldBeCalled();
     $request3->query('response_type')->willReturn('pom')->shouldBeCalled();
     $this->match($request3)->shouldReturn(false);
     $request4->isMethod('GET')->willReturn(false)->shouldBeCalled();
     $request4->request('grant_type')->willReturn('pom')->shouldBeCalled();
     $this->match($request4)->shouldReturn(false);
 }