Cheetah
Server.php
Go to the documentation of this file.
1 <?php
2 
3 namespace OAuth2;
4 
9 use OAuth2\OpenID\Controller\AuthorizeController as OpenIDAuthorizeController;
10 use OAuth2\OpenID\ResponseType\AuthorizationCode as OpenIDAuthorizationCodeResponseType;
11 use OAuth2\OpenID\Storage\AuthorizationCodeInterface as OpenIDAuthorizationCodeInterface;
12 use OAuth2\OpenID\GrantType\AuthorizationCode as OpenIDAuthorizationCodeGrantType;
20 use OAuth2\ResponseType\AuthorizationCode as AuthorizationCodeResponseType;
33 use OAuth2\Storage\JwtAccessToken as JwtAccessTokenStorage;
35 
48 {
49  // misc properties
50  protected $response;
51  protected $config;
52  protected $storages;
53 
54  // servers
56  protected $tokenController;
59 
60  // config classes
61  protected $grantTypes;
62  protected $responseTypes;
63  protected $tokenType;
64  protected $scopeUtil;
66 
67  protected $storageMap = array(
68  'access_token' => 'OAuth2\Storage\AccessTokenInterface',
69  'authorization_code' => 'OAuth2\Storage\AuthorizationCodeInterface',
70  'client_credentials' => 'OAuth2\Storage\ClientCredentialsInterface',
71  'client' => 'OAuth2\Storage\ClientInterface',
72  'refresh_token' => 'OAuth2\Storage\RefreshTokenInterface',
73  'user_credentials' => 'OAuth2\Storage\UserCredentialsInterface',
74  'user_claims' => 'OAuth2\OpenID\Storage\UserClaimsInterface',
75  'public_key' => 'OAuth2\Storage\PublicKeyInterface',
76  'jwt_bearer' => 'OAuth2\Storage\JWTBearerInterface',
77  'scope' => 'OAuth2\Storage\ScopeInterface',
78  );
79 
80  protected $responseTypeMap = array(
81  'token' => 'OAuth2\ResponseType\AccessTokenInterface',
82  'code' => 'OAuth2\ResponseType\AuthorizationCodeInterface',
83  'id_token' => 'OAuth2\OpenID\ResponseType\IdTokenInterface',
84  'id_token token' => 'OAuth2\OpenID\ResponseType\IdTokenTokenInterface',
85  'code id_token' => 'OAuth2\OpenID\ResponseType\CodeIdTokenInterface',
86  );
87 
101  public function __construct($storage = array(), array $config = array(), array $grantTypes = array(), array $responseTypes = array(), TokenTypeInterface $tokenType = null, ScopeInterface $scopeUtil = null, ClientAssertionTypeInterface $clientAssertionType = null)
102  {
103  $storage = is_array($storage) ? $storage : array($storage);
104  $this->storages = array();
105  foreach ($storage as $key => $service) {
106  $this->addStorage($service, $key);
107  }
108 
109  // merge all config values. These get passed to our controller objects
110  $this->config = array_merge(array(
111  'use_jwt_access_tokens' => false,
112  'store_encrypted_token_string' => true,
113  'use_openid_connect' => false,
114  'id_lifetime' => 3600,
115  'access_lifetime' => 3600,
116  'www_realm' => 'Service',
117  'token_param_name' => 'access_token',
118  'token_bearer_header_name' => 'Bearer',
119  'enforce_state' => true,
120  'require_exact_redirect_uri' => true,
121  'allow_implicit' => false,
122  'allow_credentials_in_request_body' => true,
123  'allow_public_clients' => true,
124  'always_issue_new_refresh_token' => false,
125  'unset_refresh_token_after_use' => true,
126  ), $config);
127 
128  foreach ($grantTypes as $key => $grantType) {
129  $this->addGrantType($grantType, $key);
130  }
131 
132  foreach ($responseTypes as $key => $responseType) {
133  $this->addResponseType($responseType, $key);
134  }
135 
136  $this->tokenType = $tokenType;
137  $this->scopeUtil = $scopeUtil;
138  $this->clientAssertionType = $clientAssertionType;
139 
140  if ($this->config['use_openid_connect']) {
141  $this->validateOpenIdConnect();
142  }
143  }
144 
145  public function getAuthorizeController()
146  {
147  if (is_null($this->authorizeController)) {
148  $this->authorizeController = $this->createDefaultAuthorizeController();
149  }
150 
151  return $this->authorizeController;
152  }
153 
154  public function getTokenController()
155  {
156  if (is_null($this->tokenController)) {
157  $this->tokenController = $this->createDefaultTokenController();
158  }
159 
160  return $this->tokenController;
161  }
162 
163  public function getResourceController()
164  {
165  if (is_null($this->resourceController)) {
166  $this->resourceController = $this->createDefaultResourceController();
167  }
168 
169  return $this->resourceController;
170  }
171 
172  public function getUserInfoController()
173  {
174  if (is_null($this->userInfoController)) {
175  $this->userInfoController = $this->createDefaultUserInfoController();
176  }
177 
178  return $this->userInfoController;
179  }
180 
184  public function setAuthorizeController(AuthorizeControllerInterface $authorizeController)
185  {
186  $this->authorizeController = $authorizeController;
187  }
188 
192  public function setTokenController(TokenControllerInterface $tokenController)
193  {
194  $this->tokenController = $tokenController;
195  }
196 
200  public function setResourceController(ResourceControllerInterface $resourceController)
201  {
202  $this->resourceController = $resourceController;
203  }
204 
208  public function setUserInfoController(UserInfoControllerInterface $userInfoController)
209  {
210  $this->userInfoController = $userInfoController;
211  }
212 
228  public function handleUserInfoRequest(RequestInterface $request, ResponseInterface $response = null)
229  {
230  $this->response = is_null($response) ? new Response() : $response;
231  $this->getUserInfoController()->handleUserInfoRequest($request, $this->response);
232 
233  return $this->response;
234  }
235 
256  public function handleTokenRequest(RequestInterface $request, ResponseInterface $response = null)
257  {
258  $this->response = is_null($response) ? new Response() : $response;
259  $this->getTokenController()->handleTokenRequest($request, $this->response);
260 
261  return $this->response;
262  }
263 
264  public function grantAccessToken(RequestInterface $request, ResponseInterface $response = null)
265  {
266  $this->response = is_null($response) ? new Response() : $response;
267  $value = $this->getTokenController()->grantAccessToken($request, $this->response);
268 
269  return $value;
270  }
271 
282  public function handleRevokeRequest(RequestInterface $request, ResponseInterface $response = null)
283  {
284  $this->response = is_null($response) ? new Response() : $response;
285  $this->getTokenController()->handleRevokeRequest($request, $this->response);
286 
287  return $this->response;
288  }
289 
318  public function handleAuthorizeRequest(RequestInterface $request, ResponseInterface $response, $is_authorized, $user_id = null)
319  {
320  $this->response = $response;
321  $this->getAuthorizeController()->handleAuthorizeRequest($request, $this->response, $is_authorized, $user_id);
322 
323  return $this->response;
324  }
325 
345  public function validateAuthorizeRequest(RequestInterface $request, ResponseInterface $response = null)
346  {
347  $this->response = is_null($response) ? new Response() : $response;
348  $value = $this->getAuthorizeController()->validateAuthorizeRequest($request, $this->response);
349 
350  return $value;
351  }
352 
353  public function verifyResourceRequest(RequestInterface $request, ResponseInterface $response = null, $scope = null)
354  {
355  $this->response = is_null($response) ? new Response() : $response;
356  $value = $this->getResourceController()->verifyResourceRequest($request, $this->response, $scope);
357 
358  return $value;
359  }
360 
361  public function getAccessTokenData(RequestInterface $request, ResponseInterface $response = null)
362  {
363  $this->response = is_null($response) ? new Response() : $response;
364  $value = $this->getResourceController()->getAccessTokenData($request, $this->response);
365 
366  return $value;
367  }
368 
369  public function addGrantType(GrantTypeInterface $grantType, $identifier = null)
370  {
371  if (!is_string($identifier)) {
372  $identifier = $grantType->getQuerystringIdentifier();
373  }
374 
375  $this->grantTypes[$identifier] = $grantType;
376 
377  // persist added grant type down to TokenController
378  if (!is_null($this->tokenController)) {
379  $this->getTokenController()->addGrantType($grantType, $identifier);
380  }
381  }
382 
393  public function addStorage($storage, $key = null)
394  {
395  // if explicitly set to a valid key, do not "magically" set below
396  if (isset($this->storageMap[$key])) {
397  if (!is_null($storage) && !$storage instanceof $this->storageMap[$key]) {
398  throw new \InvalidArgumentException(sprintf('storage of type "%s" must implement interface "%s"', $key, $this->storageMap[$key]));
399  }
400  $this->storages[$key] = $storage;
401 
402  // special logic to handle "client" and "client_credentials" strangeness
403  if ($key === 'client' && !isset($this->storages['client_credentials'])) {
404  if ($storage instanceof \OAuth2\Storage\ClientCredentialsInterface) {
405  $this->storages['client_credentials'] = $storage;
406  }
407  } elseif ($key === 'client_credentials' && !isset($this->storages['client'])) {
408  if ($storage instanceof \OAuth2\Storage\ClientInterface) {
409  $this->storages['client'] = $storage;
410  }
411  }
412  } elseif (!is_null($key) && !is_numeric($key)) {
413  throw new \InvalidArgumentException(sprintf('unknown storage key "%s", must be one of [%s]', $key, implode(', ', array_keys($this->storageMap))));
414  } else {
415  $set = false;
416  foreach ($this->storageMap as $type => $interface) {
417  if ($storage instanceof $interface) {
418  $this->storages[$type] = $storage;
419  $set = true;
420  }
421  }
422 
423  if (!$set) {
424  throw new \InvalidArgumentException(sprintf('storage of class "%s" must implement one of [%s]', get_class($storage), implode(', ', $this->storageMap)));
425  }
426  }
427  }
428 
429  public function addResponseType(ResponseTypeInterface $responseType, $key = null)
430  {
431  $key = $this->normalizeResponseType($key);
432 
433  if (isset($this->responseTypeMap[$key])) {
434  if (!$responseType instanceof $this->responseTypeMap[$key]) {
435  throw new \InvalidArgumentException(sprintf('responseType of type "%s" must implement interface "%s"', $key, $this->responseTypeMap[$key]));
436  }
437  $this->responseTypes[$key] = $responseType;
438  } elseif (!is_null($key) && !is_numeric($key)) {
439  throw new \InvalidArgumentException(sprintf('unknown responseType key "%s", must be one of [%s]', $key, implode(', ', array_keys($this->responseTypeMap))));
440  } else {
441  $set = false;
442  foreach ($this->responseTypeMap as $type => $interface) {
443  if ($responseType instanceof $interface) {
444  $this->responseTypes[$type] = $responseType;
445  $set = true;
446  }
447  }
448 
449  if (!$set) {
450  throw new \InvalidArgumentException(sprintf('Unknown response type %s. Please implement one of [%s]', get_class($responseType), implode(', ', $this->responseTypeMap)));
451  }
452  }
453  }
454 
455  public function getScopeUtil()
456  {
457  if (!$this->scopeUtil) {
458  $storage = isset($this->storages['scope']) ? $this->storages['scope'] : null;
459  $this->scopeUtil = new Scope($storage);
460  }
461 
462  return $this->scopeUtil;
463  }
464 
468  public function setScopeUtil($scopeUtil)
469  {
470  $this->scopeUtil = $scopeUtil;
471  }
472 
473  protected function createDefaultAuthorizeController()
474  {
475  if (!isset($this->storages['client'])) {
476  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\ClientInterface to use the authorize server");
477  }
478  if (0 == count($this->responseTypes)) {
479  $this->responseTypes = $this->getDefaultResponseTypes();
480  }
481  if ($this->config['use_openid_connect'] && !isset($this->responseTypes['id_token'])) {
482  $this->responseTypes['id_token'] = $this->createDefaultIdTokenResponseType();
483  if ($this->config['allow_implicit']) {
484  $this->responseTypes['id_token token'] = $this->createDefaultIdTokenTokenResponseType();
485  }
486  }
487 
488  $config = array_intersect_key($this->config, array_flip(explode(' ', 'allow_implicit enforce_state require_exact_redirect_uri')));
489 
490  if ($this->config['use_openid_connect']) {
491  return new OpenIDAuthorizeController($this->storages['client'], $this->responseTypes, $config, $this->getScopeUtil());
492  }
493 
494  return new AuthorizeController($this->storages['client'], $this->responseTypes, $config, $this->getScopeUtil());
495  }
496 
497  protected function createDefaultTokenController()
498  {
499  if (0 == count($this->grantTypes)) {
500  $this->grantTypes = $this->getDefaultGrantTypes();
501  }
502 
503  if (is_null($this->clientAssertionType)) {
504  // see if HttpBasic assertion type is requred. If so, then create it from storage classes.
505  foreach ($this->grantTypes as $grantType) {
506  if (!$grantType instanceof ClientAssertionTypeInterface) {
507  if (!isset($this->storages['client_credentials'])) {
508  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\ClientCredentialsInterface to use the token server");
509  }
510  $config = array_intersect_key($this->config, array_flip(explode(' ', 'allow_credentials_in_request_body allow_public_clients')));
511  $this->clientAssertionType = new HttpBasic($this->storages['client_credentials'], $config);
512  break;
513  }
514  }
515  }
516 
517  if (!isset($this->storages['client'])) {
518  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\ClientInterface to use the token server");
519  }
520 
521  $accessTokenResponseType = $this->getAccessTokenResponseType();
522 
523  return new TokenController($accessTokenResponseType, $this->storages['client'], $this->grantTypes, $this->clientAssertionType, $this->getScopeUtil());
524  }
525 
526  protected function createDefaultResourceController()
527  {
528  if ($this->config['use_jwt_access_tokens']) {
529  // overwrites access token storage with crypto token storage if "use_jwt_access_tokens" is set
530  if (!isset($this->storages['access_token']) || !$this->storages['access_token'] instanceof JwtAccessTokenInterface) {
531  $this->storages['access_token'] = $this->createDefaultJwtAccessTokenStorage();
532  }
533  } elseif (!isset($this->storages['access_token'])) {
534  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\AccessTokenInterface or use JwtAccessTokens to use the resource server");
535  }
536 
537  if (!$this->tokenType) {
538  $this->tokenType = $this->getDefaultTokenType();
539  }
540 
541  $config = array_intersect_key($this->config, array('www_realm' => ''));
542 
543  return new ResourceController($this->tokenType, $this->storages['access_token'], $config, $this->getScopeUtil());
544  }
545 
546  protected function createDefaultUserInfoController()
547  {
548  if ($this->config['use_jwt_access_tokens']) {
549  // overwrites access token storage with crypto token storage if "use_jwt_access_tokens" is set
550  if (!isset($this->storages['access_token']) || !$this->storages['access_token'] instanceof JwtAccessTokenInterface) {
551  $this->storages['access_token'] = $this->createDefaultJwtAccessTokenStorage();
552  }
553  } elseif (!isset($this->storages['access_token'])) {
554  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\AccessTokenInterface or use JwtAccessTokens to use the UserInfo server");
555  }
556 
557  if (!isset($this->storages['user_claims'])) {
558  throw new \LogicException("You must supply a storage object implementing OAuth2\OpenID\Storage\UserClaimsInterface to use the UserInfo server");
559  }
560 
561  if (!$this->tokenType) {
562  $this->tokenType = $this->getDefaultTokenType();
563  }
564 
565  $config = array_intersect_key($this->config, array('www_realm' => ''));
566 
567  return new UserInfoController($this->tokenType, $this->storages['access_token'], $this->storages['user_claims'], $config, $this->getScopeUtil());
568  }
569 
570  protected function getDefaultTokenType()
571  {
572  $config = array_intersect_key($this->config, array_flip(explode(' ', 'token_param_name token_bearer_header_name')));
573 
574  return new Bearer($config);
575  }
576 
577  protected function getDefaultResponseTypes()
578  {
579  $responseTypes = array();
580 
581  if ($this->config['allow_implicit']) {
582  $responseTypes['token'] = $this->getAccessTokenResponseType();
583  }
584 
585  if ($this->config['use_openid_connect']) {
586  $responseTypes['id_token'] = $this->getIdTokenResponseType();
587  if ($this->config['allow_implicit']) {
588  $responseTypes['id_token token'] = $this->getIdTokenTokenResponseType();
589  }
590  }
591 
592  if (isset($this->storages['authorization_code'])) {
593  $config = array_intersect_key($this->config, array_flip(explode(' ', 'enforce_redirect auth_code_lifetime')));
594  if ($this->config['use_openid_connect']) {
595  if (!$this->storages['authorization_code'] instanceof OpenIDAuthorizationCodeInterface) {
596  throw new \LogicException("Your authorization_code storage must implement OAuth2\OpenID\Storage\AuthorizationCodeInterface to work when 'use_openid_connect' is true");
597  }
598  $responseTypes['code'] = new OpenIDAuthorizationCodeResponseType($this->storages['authorization_code'], $config);
599  $responseTypes['code id_token'] = new CodeIdToken($responseTypes['code'], $responseTypes['id_token']);
600  } else {
601  $responseTypes['code'] = new AuthorizationCodeResponseType($this->storages['authorization_code'], $config);
602  }
603  }
604 
605  if (count($responseTypes) == 0) {
606  throw new \LogicException("You must supply an array of response_types in the constructor or implement a OAuth2\Storage\AuthorizationCodeInterface storage object or set 'allow_implicit' to true and implement a OAuth2\Storage\AccessTokenInterface storage object");
607  }
608 
609  return $responseTypes;
610  }
611 
612  protected function getDefaultGrantTypes()
613  {
614  $grantTypes = array();
615 
616  if (isset($this->storages['user_credentials'])) {
617  $grantTypes['password'] = new UserCredentials($this->storages['user_credentials']);
618  }
619 
620  if (isset($this->storages['client_credentials'])) {
621  $config = array_intersect_key($this->config, array('allow_credentials_in_request_body' => ''));
622  $grantTypes['client_credentials'] = new ClientCredentials($this->storages['client_credentials'], $config);
623  }
624 
625  if (isset($this->storages['refresh_token'])) {
626  $config = array_intersect_key($this->config, array_flip(explode(' ', 'always_issue_new_refresh_token unset_refresh_token_after_use')));
627  $grantTypes['refresh_token'] = new RefreshToken($this->storages['refresh_token'], $config);
628  }
629 
630  if (isset($this->storages['authorization_code'])) {
631  if ($this->config['use_openid_connect']) {
632  if (!$this->storages['authorization_code'] instanceof OpenIDAuthorizationCodeInterface) {
633  throw new \LogicException("Your authorization_code storage must implement OAuth2\OpenID\Storage\AuthorizationCodeInterface to work when 'use_openid_connect' is true");
634  }
635  $grantTypes['authorization_code'] = new OpenIDAuthorizationCodeGrantType($this->storages['authorization_code']);
636  } else {
637  $grantTypes['authorization_code'] = new AuthorizationCode($this->storages['authorization_code']);
638  }
639  }
640 
641  if (count($grantTypes) == 0) {
642  throw new \LogicException("Unable to build default grant types - You must supply an array of grant_types in the constructor");
643  }
644 
645  return $grantTypes;
646  }
647 
648  protected function getAccessTokenResponseType()
649  {
650  if (isset($this->responseTypes['token'])) {
651  return $this->responseTypes['token'];
652  }
653 
654  if ($this->config['use_jwt_access_tokens']) {
655  return $this->createDefaultJwtAccessTokenResponseType();
656  }
657 
658  return $this->createDefaultAccessTokenResponseType();
659  }
660 
661  protected function getIdTokenResponseType()
662  {
663  if (isset($this->responseTypes['id_token'])) {
664  return $this->responseTypes['id_token'];
665  }
666 
667  return $this->createDefaultIdTokenResponseType();
668  }
669 
670  protected function getIdTokenTokenResponseType()
671  {
672  if (isset($this->responseTypes['id_token token'])) {
673  return $this->responseTypes['id_token token'];
674  }
675 
676  return $this->createDefaultIdTokenTokenResponseType();
677  }
678 
683  {
684  if (!isset($this->storages['public_key'])) {
685  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\PublicKeyInterface to use crypto tokens");
686  }
687  $tokenStorage = null;
688  if (!empty($this->config['store_encrypted_token_string']) && isset($this->storages['access_token'])) {
689  $tokenStorage = $this->storages['access_token'];
690  }
691  // wrap the access token storage as required.
692  return new JwtAccessTokenStorage($this->storages['public_key'], $tokenStorage);
693  }
694 
699  {
700  if (!isset($this->storages['public_key'])) {
701  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\PublicKeyInterface to use crypto tokens");
702  }
703 
704  $tokenStorage = null;
705  if (isset($this->storages['access_token'])) {
706  $tokenStorage = $this->storages['access_token'];
707  }
708 
709  $refreshStorage = null;
710  if (isset($this->storages['refresh_token'])) {
711  $refreshStorage = $this->storages['refresh_token'];
712  }
713 
714  $config = array_intersect_key($this->config, array_flip(explode(' ', 'store_encrypted_token_string issuer access_lifetime refresh_token_lifetime')));
715 
716  return new JwtAccessToken($this->storages['public_key'], $tokenStorage, $refreshStorage, $config);
717  }
718 
720  {
721  if (!isset($this->storages['access_token'])) {
722  throw new \LogicException("You must supply a response type implementing OAuth2\ResponseType\AccessTokenInterface, or a storage object implementing OAuth2\Storage\AccessTokenInterface to use the token server");
723  }
724 
725  $refreshStorage = null;
726  if (isset($this->storages['refresh_token'])) {
727  $refreshStorage = $this->storages['refresh_token'];
728  }
729 
730  $config = array_intersect_key($this->config, array_flip(explode(' ', 'access_lifetime refresh_token_lifetime')));
731  $config['token_type'] = $this->tokenType ? $this->tokenType->getTokenType() : $this->getDefaultTokenType()->getTokenType();
732 
733  return new AccessToken($this->storages['access_token'], $refreshStorage, $config);
734  }
735 
736  protected function createDefaultIdTokenResponseType()
737  {
738  if (!isset($this->storages['user_claims'])) {
739  throw new \LogicException("You must supply a storage object implementing OAuth2\OpenID\Storage\UserClaimsInterface to use openid connect");
740  }
741  if (!isset($this->storages['public_key'])) {
742  throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\PublicKeyInterface to use openid connect");
743  }
744 
745  $config = array_intersect_key($this->config, array_flip(explode(' ', 'issuer id_lifetime')));
746 
747  return new IdToken($this->storages['user_claims'], $this->storages['public_key'], $config);
748  }
749 
751  {
752  return new IdTokenToken($this->getAccessTokenResponseType(), $this->getIdTokenResponseType());
753  }
754 
755  protected function validateOpenIdConnect()
756  {
757  $authCodeGrant = $this->getGrantType('authorization_code');
758  if (!empty($authCodeGrant) && !$authCodeGrant instanceof OpenIDAuthorizationCodeGrantType) {
759  throw new \InvalidArgumentException('You have enabled OpenID Connect, but supplied a grant type that does not support it.');
760  }
761  }
762 
763  protected function normalizeResponseType($name)
764  {
765  // for multiple-valued response types - make them alphabetical
766  if (!empty($name) && false !== strpos($name, ' ')) {
767  $types = explode(' ', $name);
768  sort($types);
769  $name = implode(' ', $types);
770  }
771 
772  return $name;
773  }
774 
775  public function getResponse()
776  {
777  return $this->response;
778  }
779 
780  public function getStorages()
781  {
782  return $this->storages;
783  }
784 
785  public function getStorage($name)
786  {
787  return isset($this->storages[$name]) ? $this->storages[$name] : null;
788  }
789 
790  public function getGrantTypes()
791  {
792  return $this->grantTypes;
793  }
794 
795  public function getGrantType($name)
796  {
797  return isset($this->grantTypes[$name]) ? $this->grantTypes[$name] : null;
798  }
799 
800  public function getResponseTypes()
801  {
802  return $this->responseTypes;
803  }
804 
805  public function getResponseType($name)
806  {
807  // for multiple-valued response types - make them alphabetical
808  $name = $this->normalizeResponseType($name);
809 
810  return isset($this->responseTypes[$name]) ? $this->responseTypes[$name] : null;
811  }
812 
813  public function getTokenType()
814  {
815  return $this->tokenType;
816  }
817 
818  public function getClientAssertionType()
819  {
820  return $this->clientAssertionType;
821  }
822 
823  public function setConfig($name, $value)
824  {
825  $this->config[$name] = $value;
826  }
827 
828  public function getConfig($name, $default = null)
829  {
830  return isset($this->config[$name]) ? $this->config[$name] : $default;
831  }
832 }
OAuth2\Server\getResponse
getResponse()
Definition: Server.php:775
OAuth2\Server\getResponseTypes
getResponseTypes()
Definition: Server.php:800
OAuth2\OpenID\Storage\AuthorizationCodeInterface
Definition: AuthorizationCodeInterface.php:14
OAuth2\Server\grantAccessToken
grantAccessToken(RequestInterface $request, ResponseInterface $response=null)
Definition: Server.php:264
$config
$config
Definition: Filter.ExtractStyleBlocks.txt:33
OAuth2\Controller\TokenControllerInterface
Definition: TokenControllerInterface.php:19
OAuth2\Response
Definition: Response.php:15
OAuth2\GrantType\GrantTypeInterface
Definition: GrantTypeInterface.php:13
OAuth2\ClientAssertionType\HttpBasic
Definition: HttpBasic.php:15
OAuth2\OpenID\ResponseType\IdToken
Definition: IdToken.php:11
OAuth2\Server\setUserInfoController
setUserInfoController(UserInfoControllerInterface $userInfoController)
Definition: Server.php:208
OAuth2\ResponseType\AuthorizationCode
Definition: AuthorizationCode.php:12
OAuth2\OpenID\ResponseType\AuthorizationCode
Definition: AuthorizationCode.php:13
OAuth2\ScopeInterface
Definition: ScopeInterface.php:13
OAuth2\Server\$tokenController
$tokenController
Definition: Server.php:56
OAuth2\GrantType\ClientCredentials
Definition: ClientCredentials.php:15
use
GNU LESSER GENERAL PUBLIC LICENSE February Free Software Inc Franklin Fifth MA USA Everyone is permitted to copy and distribute verbatim copies of this license but changing it is not allowed[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it By the GNU General Public Licenses are intended to guarantee your freedom to share and change free software to make sure the software is free for all its users This the Lesser General Public applies to some specially designated software packages typically libraries of the Free Software Foundation and other authors who decide to use it You can use it but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular based on the explanations below When we speak of free we are referring to freedom of use
Definition: license.txt:27
OAuth2\OpenID\Controller\AuthorizeController
Definition: AuthorizeController.php:13
OAuth2\Server\getScopeUtil
getScopeUtil()
Definition: Server.php:455
OAuth2\Server\handleAuthorizeRequest
handleAuthorizeRequest(RequestInterface $request, ResponseInterface $response, $is_authorized, $user_id=null)
Definition: Server.php:318
OAuth2\Server\createDefaultJwtAccessTokenStorage
createDefaultJwtAccessTokenStorage()
Definition: Server.php:682
OAuth2\Server\getUserInfoController
getUserInfoController()
Definition: Server.php:172
OAuth2\Server\setScopeUtil
setScopeUtil($scopeUtil)
Definition: Server.php:468
OAuth2\Scope
Definition: Scope.php:12
php
OAuth2\ResponseType\ResponseTypeInterface
Definition: ResponseTypeInterface.php:6
OAuth2\Server\__construct
__construct($storage=array(), array $config=array(), array $grantTypes=array(), array $responseTypes=array(), TokenTypeInterface $tokenType=null, ScopeInterface $scopeUtil=null, ClientAssertionTypeInterface $clientAssertionType=null)
Definition: Server.php:101
OAuth2\Server\verifyResourceRequest
verifyResourceRequest(RequestInterface $request, ResponseInterface $response=null, $scope=null)
Definition: Server.php:353
OAuth2\Server\$storages
$storages
Definition: Server.php:52
OAuth2\Server\$responseTypes
$responseTypes
Definition: Server.php:62
OAuth2\Controller\ResourceControllerInterface
Definition: ResourceControllerInterface.php:22
OAuth2\Server\getGrantType
getGrantType($name)
Definition: Server.php:795
OAuth2\Server\createDefaultUserInfoController
createDefaultUserInfoController()
Definition: Server.php:546
OAuth2\Server\getAuthorizeController
getAuthorizeController()
Definition: Server.php:145
OAuth2\Server\handleRevokeRequest
handleRevokeRequest(RequestInterface $request, ResponseInterface $response=null)
Definition: Server.php:282
OAuth2\Server\$tokenType
$tokenType
Definition: Server.php:63
OAuth2\Server\$authorizeController
$authorizeController
Definition: Server.php:55
OAuth2\Server\$grantTypes
$grantTypes
Definition: Server.php:61
OAuth2\Server\createDefaultTokenController
createDefaultTokenController()
Definition: Server.php:497
OAuth2\Storage\JwtAccessTokenInterface
Definition: JwtAccessTokenInterface.php:12
OAuth2\Server\$config
$config
Definition: Server.php:51
OAuth2\Server\setAuthorizeController
setAuthorizeController(AuthorizeControllerInterface $authorizeController)
Definition: Server.php:184
OAuth2\OpenID\ResponseType\IdTokenToken
Definition: IdTokenToken.php:8
OAuth2\Server\getStorages
getStorages()
Definition: Server.php:780
OAuth2\Server\handleUserInfoRequest
handleUserInfoRequest(RequestInterface $request, ResponseInterface $response=null)
Definition: Server.php:228
OAuth2\Server\addGrantType
addGrantType(GrantTypeInterface $grantType, $identifier=null)
Definition: Server.php:369
OAuth2\Server\getDefaultTokenType
getDefaultTokenType()
Definition: Server.php:570
OAuth2\Server\getResponseType
getResponseType($name)
Definition: Server.php:805
OAuth2\GrantType\UserCredentials
Definition: UserCredentials.php:15
OAuth2\Server\getGrantTypes
getGrantTypes()
Definition: Server.php:790
OAuth2\Server\$clientAssertionType
$clientAssertionType
Definition: Server.php:65
OAuth2\GrantType\RefreshToken
Definition: RefreshToken.php:15
OAuth2\OpenID\Controller\UserInfoControllerInterface
Definition: UserInfoControllerInterface.php:21
OAuth2\Server\normalizeResponseType
normalizeResponseType($name)
Definition: Server.php:763
OAuth2\Server\$userInfoController
$userInfoController
Definition: Server.php:58
OAuth2\Server
Definition: Server.php:48
OAuth2\Server\addStorage
addStorage($storage, $key=null)
Definition: Server.php:393
OAuth2\Server\getDefaultResponseTypes
getDefaultResponseTypes()
Definition: Server.php:577
OAuth2\Server\addResponseType
addResponseType(ResponseTypeInterface $responseType, $key=null)
Definition: Server.php:429
OAuth2\Server\getTokenType
getTokenType()
Definition: Server.php:813
OAuth2\Server\createDefaultJwtAccessTokenResponseType
createDefaultJwtAccessTokenResponseType()
Definition: Server.php:698
OAuth2\ResponseInterface
Definition: ResponseInterface.php:12
OAuth2\Server\getAccessTokenResponseType
getAccessTokenResponseType()
Definition: Server.php:648
OAuth2\Server\createDefaultAccessTokenResponseType
createDefaultAccessTokenResponseType()
Definition: Server.php:719
OAuth2\Controller\AuthorizeControllerInterface
Definition: AuthorizeControllerInterface.php:27
OAuth2\Server\getIdTokenResponseType
getIdTokenResponseType()
Definition: Server.php:661
OAuth2\ClientAssertionType\ClientAssertionTypeInterface
Definition: ClientAssertionTypeInterface.php:12
OAuth2\Controller\AuthorizeController
Definition: AuthorizeController.php:15
OAuth2\OpenID\Controller\UserInfoController
Definition: UserInfoController.php:18
OAuth2\Server\getAccessTokenData
getAccessTokenData(RequestInterface $request, ResponseInterface $response=null)
Definition: Server.php:361
OAuth2\Server\$resourceController
$resourceController
Definition: Server.php:57
OAuth2\RequestInterface
Definition: RequestInterface.php:6
OAuth2\Server\createDefaultIdTokenResponseType
createDefaultIdTokenResponseType()
Definition: Server.php:736
OAuth2\ResponseType\JwtAccessToken
Definition: JwtAccessToken.php:17
OAuth2\Server\setResourceController
setResourceController(ResourceControllerInterface $resourceController)
Definition: Server.php:200
OAuth2\Server\setConfig
setConfig($name, $value)
Definition: Server.php:823
OAuth2\OpenID\ResponseType\CodeIdToken
Definition: CodeIdToken.php:6
OAuth2\Server\getResourceController
getResourceController()
Definition: Server.php:163
OAuth2\GrantType\AuthorizationCode
Definition: AuthorizationCode.php:15
OAuth2\Controller\ResourceController
Definition: ResourceController.php:16
OAuth2
Definition: Autoloader.php:3
OAuth2\Server\getStorage
getStorage($name)
Definition: Server.php:785
OAuth2\TokenType\Bearer
Definition: Bearer.php:12
OAuth2\Server\validateAuthorizeRequest
validateAuthorizeRequest(RequestInterface $request, ResponseInterface $response=null)
Definition: Server.php:345
OAuth2\Controller\TokenController
Definition: TokenController.php:18
OAuth2\Server\$scopeUtil
$scopeUtil
Definition: Server.php:64
OAuth2\ResponseType\AccessToken
Definition: AccessToken.php:13
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
OAuth2\Server\getDefaultGrantTypes
getDefaultGrantTypes()
Definition: Server.php:612
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
OAuth2\Storage\JwtAccessToken
Definition: JwtAccessToken.php:13
OAuth2\Server\validateOpenIdConnect
validateOpenIdConnect()
Definition: Server.php:755
OAuth2\Server\getConfig
getConfig($name, $default=null)
Definition: Server.php:828
OAuth2\Server\getIdTokenTokenResponseType
getIdTokenTokenResponseType()
Definition: Server.php:670
OAuth2\Server\createDefaultResourceController
createDefaultResourceController()
Definition: Server.php:526
OAuth2\Server\handleTokenRequest
handleTokenRequest(RequestInterface $request, ResponseInterface $response=null)
Definition: Server.php:256
OAuth2\Server\setTokenController
setTokenController(TokenControllerInterface $tokenController)
Definition: Server.php:192
OAuth2\Server\getClientAssertionType
getClientAssertionType()
Definition: Server.php:818
OAuth2\OpenID\GrantType\AuthorizationCode
Definition: AuthorizationCode.php:13
OAuth2\Server\createDefaultAuthorizeController
createDefaultAuthorizeController()
Definition: Server.php:473
OAuth2\Server\$response
$response
Definition: Server.php:50
OAuth2\Server\createDefaultIdTokenTokenResponseType
createDefaultIdTokenTokenResponseType()
Definition: Server.php:750
OAuth2\Server\getTokenController
getTokenController()
Definition: Server.php:154
OAuth2\GrantType\GrantTypeInterface\getQuerystringIdentifier
getQuerystringIdentifier()
OAuth2\TokenType\TokenTypeInterface
Definition: TokenTypeInterface.php:9