[smarcet] - #5020 - Basic Client Flow (with authorization code)
This commit is contained in:
parent
c2b38227fd
commit
9552bc46b9
28
app/controllers/OAuth2ProviderController.php
Normal file
28
app/controllers/OAuth2ProviderController.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
use oauth2\IOAuth2Protocol;
|
||||
use oauth2\services\IMementoOAuth2RequestService;
|
||||
|
||||
/**
|
||||
* Class OAuth2ProviderController
|
||||
*/
|
||||
class OAuth2ProviderController extends BaseController {
|
||||
|
||||
private $oauth2_protocol;
|
||||
private $memento_service;
|
||||
|
||||
/**
|
||||
* @param IOAuth2Protocol $oauth2_protocol
|
||||
* @param IMementoOAuth2RequestService $memento_service
|
||||
*/
|
||||
public function __construct(IOAuth2Protocol $oauth2_protocol, IMementoOAuth2RequestService $memento_service){
|
||||
$this->oauth2_protocol = $oauth2_protocol;
|
||||
$this->memento_service = $memento_service;
|
||||
}
|
||||
|
||||
public function authorize(){
|
||||
$request = $this->memento_service->getCurrentRequest();
|
||||
if (is_null($request) || !$request->isValid())
|
||||
throw new \Exception();
|
||||
$response = $this->$oauth2_protocol->authorize($request);
|
||||
}
|
||||
}
|
@ -11,6 +11,7 @@ use services\IUserActionService;
|
||||
use strategies\DefaultLoginStrategy;
|
||||
use strategies\OpenIdConsentStrategy;
|
||||
use strategies\OpenIdLoginStrategy;
|
||||
use openid\requests\OpenIdAuthenticationRequest;
|
||||
|
||||
class UserController extends BaseController
|
||||
{
|
||||
@ -32,19 +33,18 @@ class UserController extends BaseController
|
||||
IUserService $user_service,
|
||||
IUserActionService $user_action_service)
|
||||
{
|
||||
$this->memento_service = $memento_service;
|
||||
$this->auth_service = $auth_service;
|
||||
$this->memento_service = $memento_service;
|
||||
$this->auth_service = $auth_service;
|
||||
$this->server_configuration_service = $server_configuration_service;
|
||||
$this->trusted_sites_service = $trusted_sites_service;
|
||||
$this->discovery = $discovery;
|
||||
$this->user_service = $user_service;
|
||||
$this->user_action_service = $user_action_service;
|
||||
$this->trusted_sites_service = $trusted_sites_service;
|
||||
$this->discovery = $discovery;
|
||||
$this->user_service = $user_service;
|
||||
$this->user_action_service = $user_action_service;
|
||||
//filters
|
||||
$this->beforeFilter('csrf', array('only' => array('postLogin', 'postConsent')));
|
||||
|
||||
|
||||
$msg = $this->memento_service->getCurrentRequest();
|
||||
if (!is_null($msg) && $msg->isValid()) {
|
||||
if (!is_null($msg) && $msg->isValid() && OpenIdAuthenticationRequest::IsOpenIdAuthenticationRequest($msg)) {
|
||||
//openid stuff
|
||||
$this->beforeFilter('openid.save.request');
|
||||
$this->beforeFilter('openid.needs.auth.request', array('only' => array('getConsent')));
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
use openid\exceptions\InvalidOpenIdMessageException;
|
||||
use openid\requests\OpenIdAuthenticationRequest;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -20,7 +20,7 @@ use openid\services\ServiceCatalog;
|
||||
App::before(function ($request) {
|
||||
try {
|
||||
//checkpoint security pattern entry point
|
||||
$checkpoint_service = Registry::getInstance()->get(ServiceCatalog::CheckPointService);
|
||||
$checkpoint_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::CheckPointService);
|
||||
if (!$checkpoint_service->check()) {
|
||||
return View::make('404');
|
||||
}
|
||||
@ -111,7 +111,7 @@ Route::filter("openid.save.request", function () {
|
||||
|
||||
Route::filter("ssl", function () {
|
||||
if (!Request::secure()) {
|
||||
$memento_service = Registry::getInstance()->get("openid\\services\\IMementoOpenIdRequestService");
|
||||
$memento_service = OpenIdRegistry::getInstance()->get("openid\\services\\IMementoOpenIdRequestService");
|
||||
$memento_service->saveCurrentRequest();
|
||||
return Redirect::secure(Request::getRequestUri());
|
||||
}
|
||||
|
@ -3,16 +3,16 @@
|
||||
namespace auth;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
class AuthenticationServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
||||
public function boot()
|
||||
{
|
||||
$this->app->singleton(ServiceCatalog::AuthenticationService, 'auth\\AuthService');
|
||||
Registry::getInstance()->set(ServiceCatalog::AuthenticationService, $this->app->make(ServiceCatalog::AuthenticationService));
|
||||
$this->app->singleton(OpenIdServiceCatalog::AuthenticationService, 'auth\\AuthService');
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::AuthenticationService, $this->app->make(OpenIdServiceCatalog::AuthenticationService));
|
||||
}
|
||||
|
||||
public function register()
|
||||
|
@ -10,8 +10,8 @@ use Log;
|
||||
use Member;
|
||||
use openid\helpers\OpenIdErrorMessages;
|
||||
use openid\requests\OpenIdAuthenticationRequest;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
use auth\exceptions\AuthenticationInvalidPasswordAttemptException;
|
||||
|
||||
class CustomAuthProvider implements UserProviderInterface
|
||||
@ -60,8 +60,8 @@ class CustomAuthProvider implements UserProviderInterface
|
||||
throw new AuthenticationException("invalid crendentials");
|
||||
|
||||
$identifier = $credentials['username'];
|
||||
$password = $credentials['password'];
|
||||
$user = OpenIdUser::where('external_id', '=', $identifier)->first();
|
||||
$password = $credentials['password'];
|
||||
$user = OpenIdUser::where('external_id', '=', $identifier)->first();
|
||||
|
||||
//check user status...
|
||||
if (!is_null($user) && ($user->lock || !$user->active)){
|
||||
@ -90,13 +90,13 @@ class CustomAuthProvider implements UserProviderInterface
|
||||
$user = OpenIdUser::where('external_id', '=', $identifier)->first();
|
||||
}
|
||||
|
||||
$user_service = Registry::getInstance()->get(ServiceCatalog::UserService);
|
||||
$user_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::UserService);
|
||||
|
||||
$user_name = $member->FirstName . "." . $member->Surname;
|
||||
//do association between user and member
|
||||
$user_service->associateUser($user->id, strtolower($user_name));
|
||||
|
||||
$server_configuration = Registry::getInstance()->get(ServiceCatalog::ServerConfigurationService);
|
||||
$server_configuration = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerConfigurationService);
|
||||
|
||||
//update user fields
|
||||
$user->last_login_date = gmdate("Y-m-d H:i:s", time());
|
||||
@ -110,7 +110,7 @@ class CustomAuthProvider implements UserProviderInterface
|
||||
$user->setMember($member);
|
||||
|
||||
//check if we have a current openid message
|
||||
$memento_service = Registry::getInstance()->get(ServiceCatalog::MementoService);
|
||||
$memento_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::MementoService);
|
||||
$msg = $memento_service->getCurrentRequest();
|
||||
if (is_null($msg) || !$msg->isValid() || !OpenIdAuthenticationRequest::IsOpenIdAuthenticationRequest($msg))
|
||||
return $user;
|
||||
@ -130,7 +130,7 @@ class CustomAuthProvider implements UserProviderInterface
|
||||
}
|
||||
|
||||
} catch (Exception $ex) {
|
||||
$checkpoint_service = Registry::getInstance()->get(ServiceCatalog::CheckPointService);
|
||||
$checkpoint_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::CheckPointService);
|
||||
$checkpoint_service->trackException($ex);
|
||||
Log::error($ex);
|
||||
return null;
|
||||
|
@ -6,8 +6,8 @@ use Illuminate\Auth\UserInterface;
|
||||
use Member;
|
||||
use MemberPhoto;
|
||||
use openid\model\IOpenIdUser;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
class OpenIdUser extends \Eloquent implements UserInterface, IOpenIdUser
|
||||
{
|
||||
@ -185,7 +185,7 @@ class OpenIdUser extends \Eloquent implements UserInterface, IOpenIdUser
|
||||
$photoId = $this->member->PhotoID;
|
||||
if (!is_null($photoId) && is_numeric($photoId) && $photoId > 0) {
|
||||
$photo = MemberPhoto::where('ID', '=', $photoId)->first();
|
||||
$server_configuration_service = Registry::getInstance()->get(ServiceCatalog::ServerConfigurationService);
|
||||
$server_configuration_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerConfigurationService);
|
||||
$url = $server_configuration_service->getConfigValue("Assets.Url").$photo->Filename;
|
||||
return $url;
|
||||
}
|
||||
|
0
app/libs/oauth2/.gitkeep
Normal file
0
app/libs/oauth2/.gitkeep
Normal file
15
app/libs/oauth2/IOAuth2Protocol.php
Normal file
15
app/libs/oauth2/IOAuth2Protocol.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: smarcet
|
||||
* Date: 12/2/13
|
||||
* Time: 3:26 PM
|
||||
*/
|
||||
|
||||
namespace oauth2;
|
||||
use oauth2\requests\OAuth2Request;
|
||||
|
||||
interface IOAuth2Protocol {
|
||||
public function authorize(OAuth2Request $request);
|
||||
public function token(OAuth2Request $request);
|
||||
}
|
40
app/libs/oauth2/OAuth2Message.php
Normal file
40
app/libs/oauth2/OAuth2Message.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace oauth2;
|
||||
|
||||
class OAuth2Message implements \ArrayAccess
|
||||
{
|
||||
|
||||
protected $container = array();
|
||||
|
||||
public function __construct(array $values)
|
||||
{
|
||||
$this->container = $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* arrayaccess methods
|
||||
* */
|
||||
public function offsetSet($offset, $value)
|
||||
{
|
||||
if (is_null($offset)) {
|
||||
$this->container[] = $value;
|
||||
} else {
|
||||
$this->container[$offset] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
public function offsetExists($offset)
|
||||
{
|
||||
return isset($this->container[$offset]);
|
||||
}
|
||||
|
||||
public function offsetUnset($offset)
|
||||
{
|
||||
unset($this->container[$offset]);
|
||||
}
|
||||
|
||||
public function offsetGet($offset)
|
||||
{
|
||||
return isset($this->container[$offset]) ? $this->container[$offset] : null;
|
||||
}
|
||||
}
|
43
app/libs/oauth2/OAuth2Protocol.php
Normal file
43
app/libs/oauth2/OAuth2Protocol.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace oauth2;
|
||||
|
||||
use oauth2\requests\OAuth2Request;
|
||||
use oauth2\endpoints\AuthorizationEndpoint;
|
||||
use oauth2\endpoints\TokenEndpoint;
|
||||
|
||||
class OAuth2Protocol implements IOAuth2Protocol{
|
||||
|
||||
private $authorize_endpoint;
|
||||
private $token_endpoint;
|
||||
|
||||
|
||||
const OAuth2Protocol_ResponseType = "response_type";
|
||||
const OAuth2Protocol_ClientId = "client_id";
|
||||
const OAuth2Protocol_RedirectUri = "redirect_uri";
|
||||
const OAuth2Protocol_Scope = "scope";
|
||||
const OAuth2Protocol_State = "state";
|
||||
|
||||
public static $protocol_definition = array(
|
||||
self::OAuth2Protocol_ResponseType => self::OAuth2Protocol_ResponseType,
|
||||
self::OAuth2Protocol_ClientId => self::OAuth2Protocol_ClientId,
|
||||
self::OAuth2Protocol_RedirectUri => self::OAuth2Protocol_RedirectUri,
|
||||
self::OAuth2Protocol_Scope => self::OAuth2Protocol_Scope,
|
||||
self::OAuth2Protocol_State => self::OAuth2Protocol_State
|
||||
);
|
||||
|
||||
public function __construct(){
|
||||
$this->authorize_endpoint = new AuthorizationEndpoint;
|
||||
$this->token_endpoint = new TokenEndpoint;
|
||||
}
|
||||
|
||||
public function authorize(OAuth2Request $request)
|
||||
{
|
||||
return $this->authorize_endpoint->handle($request);
|
||||
}
|
||||
|
||||
public function token(OAuth2Request $request)
|
||||
{
|
||||
return $this->token_endpoint->handle($request);
|
||||
}
|
||||
}
|
0
app/libs/oauth2/endpoints/.gitkeep
Normal file
0
app/libs/oauth2/endpoints/.gitkeep
Normal file
16
app/libs/oauth2/endpoints/AuthorizationEndpoint.php
Normal file
16
app/libs/oauth2/endpoints/AuthorizationEndpoint.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace oauth2\endpoints;
|
||||
use oauth2\requests\OAuth2Request;
|
||||
|
||||
/**
|
||||
* Class AuthorizationEndpoint
|
||||
* @package oauth2\endpoints
|
||||
*/
|
||||
class AuthorizationEndpoint implements IOAuth2Endpoint {
|
||||
|
||||
public function handle(OAuth2Request $request)
|
||||
{
|
||||
// TODO: Implement handle() method.
|
||||
}
|
||||
}
|
12
app/libs/oauth2/endpoints/IOAuth2Endpoint.php
Normal file
12
app/libs/oauth2/endpoints/IOAuth2Endpoint.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace oauth2\endpoints;
|
||||
use oauth2\requests\OAuth2Request;
|
||||
|
||||
/**
|
||||
* Interface IOAuth2Endpoint
|
||||
* @package oauth2\endpoints
|
||||
*/
|
||||
interface IOAuth2Endpoint {
|
||||
public function handle(OAuth2Request $request);
|
||||
}
|
19
app/libs/oauth2/endpoints/TokenEndpoint.php
Normal file
19
app/libs/oauth2/endpoints/TokenEndpoint.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: smarcet
|
||||
* Date: 12/2/13
|
||||
* Time: 3:30 PM
|
||||
*/
|
||||
|
||||
namespace oauth2\endpoints;
|
||||
|
||||
use oauth2\requests\OAuth2Request;
|
||||
|
||||
class TokenEndpoint implements IOAuth2Endpoint {
|
||||
|
||||
public function handle(OAuth2Request $request)
|
||||
{
|
||||
// TODO: Implement handle() method.
|
||||
}
|
||||
}
|
0
app/libs/oauth2/grant_types/.gitkeep
Normal file
0
app/libs/oauth2/grant_types/.gitkeep
Normal file
0
app/libs/oauth2/models/.gitkeep
Normal file
0
app/libs/oauth2/models/.gitkeep
Normal file
0
app/libs/oauth2/requests/.gitkeep
Normal file
0
app/libs/oauth2/requests/.gitkeep
Normal file
32
app/libs/oauth2/requests/OAuth2AuthorizationRequest.php
Normal file
32
app/libs/oauth2/requests/OAuth2AuthorizationRequest.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: smarcet
|
||||
* Date: 12/2/13
|
||||
* Time: 2:42 PM
|
||||
*/
|
||||
|
||||
namespace oauth2\requests;
|
||||
use oauth2\OAuth2Protocol;
|
||||
|
||||
class OAuth2AuthorizationRequest extends OAuth2Request {
|
||||
|
||||
public function __construct(array $values)
|
||||
{
|
||||
parent::__construct($values);
|
||||
}
|
||||
|
||||
|
||||
public static $params = array(
|
||||
OAuth2Protocol::OAuth2Protocol_ResponseType => OAuth2Protocol::OAuth2Protocol_ResponseType,
|
||||
OAuth2Protocol::OAuth2Protocol_ClientId => OAuth2Protocol::OAuth2Protocol_ClientId,
|
||||
OAuth2Protocol::OAuth2Protocol_RedirectUri => OAuth2Protocol::OAuth2Protocol_RedirectUri,
|
||||
OAuth2Protocol::OAuth2Protocol_Scope => OAuth2Protocol::OAuth2Protocol_Scope,
|
||||
OAuth2Protocol::OAuth2Protocol_State => OAuth2Protocol::OAuth2Protocol_State
|
||||
);
|
||||
|
||||
public function isValid()
|
||||
{
|
||||
// TODO: Implement isValid() method.
|
||||
}
|
||||
}
|
13
app/libs/oauth2/requests/OAuth2Request.php
Normal file
13
app/libs/oauth2/requests/OAuth2Request.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
namespace oauth2\requests;
|
||||
use oauth2\OAuth2Message;
|
||||
|
||||
abstract class OAuth2Request extends OAuth2Message {
|
||||
|
||||
public function __construct(array $values)
|
||||
{
|
||||
parent::__construct($values);
|
||||
}
|
||||
|
||||
public abstract function isValid();
|
||||
}
|
0
app/libs/oauth2/responses/.gitkeep
Normal file
0
app/libs/oauth2/responses/.gitkeep
Normal file
0
app/libs/oauth2/services/.gitkeep
Normal file
0
app/libs/oauth2/services/.gitkeep
Normal file
25
app/libs/oauth2/services/IMementoOAuth2RequestService.php
Normal file
25
app/libs/oauth2/services/IMementoOAuth2RequestService.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: smarcet
|
||||
* Date: 12/2/13
|
||||
* Time: 5:05 PM
|
||||
*/
|
||||
|
||||
namespace oauth2\services;
|
||||
|
||||
|
||||
interface IMementoOAuth2RequestService {
|
||||
/**
|
||||
* Save current OAuth2Request till next request
|
||||
* @return bool
|
||||
*/
|
||||
public function saveCurrentRequest();
|
||||
|
||||
/** Retrieve last OpenIdMessage
|
||||
* @return OAuth2Request;
|
||||
*/
|
||||
public function getCurrentRequest();
|
||||
|
||||
public function clearCurrentRequest();
|
||||
}
|
@ -5,8 +5,8 @@ namespace openid;
|
||||
use openid\handlers\OpenIdAuthenticationRequestHandler;
|
||||
use openid\handlers\OpenIdCheckAuthenticationRequestHandler;
|
||||
use openid\handlers\OpenIdSessionAssociationRequestHandler;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
use openid\XRDS\XRDSDocumentBuilder;
|
||||
use openid\XRDS\XRDSService;
|
||||
|
||||
@ -116,15 +116,15 @@ class OpenIdProtocol implements IOpenIdProtocol
|
||||
{
|
||||
//create chain of responsibility
|
||||
|
||||
$auth_service = Registry::getInstance()->get(ServiceCatalog::AuthenticationService);
|
||||
$memento_request_service = Registry::getInstance()->get(ServiceCatalog::MementoService);
|
||||
$auth_strategy = Registry::getInstance()->get(ServiceCatalog::AuthenticationStrategy);
|
||||
$server_extension_service = Registry::getInstance()->get(ServiceCatalog::ServerExtensionsService);
|
||||
$association_service = Registry::getInstance()->get(ServiceCatalog::AssociationService);
|
||||
$trusted_sites_service = Registry::getInstance()->get(ServiceCatalog::TrustedSitesService);
|
||||
$server_config_service = Registry::getInstance()->get(ServiceCatalog::ServerConfigurationService);
|
||||
$nonce_service = Registry::getInstance()->get(ServiceCatalog::NonceService);
|
||||
$log = Registry::getInstance()->get(ServiceCatalog::LogService);
|
||||
$auth_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AuthenticationService);
|
||||
$memento_request_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::MementoService);
|
||||
$auth_strategy = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AuthenticationStrategy);
|
||||
$server_extension_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerExtensionsService);
|
||||
$association_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AssociationService);
|
||||
$trusted_sites_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::TrustedSitesService);
|
||||
$server_config_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerConfigurationService);
|
||||
$nonce_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::NonceService);
|
||||
$log = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::LogService);
|
||||
|
||||
$check_auth = new OpenIdCheckAuthenticationRequestHandler($association_service, $nonce_service, $log, null);
|
||||
$session_assoc = new OpenIdSessionAssociationRequestHandler($log, $check_auth);
|
||||
@ -158,8 +158,8 @@ class OpenIdProtocol implements IOpenIdProtocol
|
||||
|
||||
public function getXRDSDiscovery($mode, $canonical_id = null)
|
||||
{
|
||||
$server_extension_service = Registry::getInstance()->get(ServiceCatalog::ServerExtensionsService);
|
||||
$server_config_service = Registry::getInstance()->get(ServiceCatalog::ServerConfigurationService);
|
||||
$server_extension_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerExtensionsService);
|
||||
$server_config_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerConfigurationService);
|
||||
|
||||
$active_extensions = $server_extension_service->getAllActiveExtensions();
|
||||
$extensions = array();
|
||||
|
@ -13,8 +13,8 @@ use openid\requests\contexts\RequestContext;
|
||||
use openid\requests\OpenIdRequest;
|
||||
use openid\responses\contexts\ResponseContext;
|
||||
use openid\responses\OpenIdResponse;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
/**
|
||||
* Class OpenIdExtension
|
||||
@ -43,7 +43,7 @@ abstract class OpenIdExtension
|
||||
$this->name = $name;
|
||||
$this->view = $view;
|
||||
$this->description = $description;
|
||||
$this->log = Registry::getInstance()->get(ServiceCatalog::LogService);
|
||||
$this->log = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::LogService);
|
||||
}
|
||||
|
||||
public function getNamespace()
|
||||
|
@ -9,8 +9,8 @@ use openid\requests\contexts\RequestContext;
|
||||
use openid\requests\OpenIdRequest;
|
||||
use openid\responses\contexts\ResponseContext;
|
||||
use openid\responses\OpenIdResponse;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
|
||||
/**
|
||||
@ -73,7 +73,7 @@ class OpenIdAXExtension extends OpenIdExtension
|
||||
$response->addParam(self::param(self::Mode), self::FetchResponse);
|
||||
$context->addSignParam(self::param(self::Mode));
|
||||
$attributes = $ax_request->getRequiredAttributes();
|
||||
$auth_service = Registry::getInstance()->get(ServiceCatalog::AuthenticationService);
|
||||
$auth_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AuthenticationService);
|
||||
$user = $auth_service->getCurrentUser();
|
||||
foreach ($attributes as $attr) {
|
||||
$response->addParam(self::param(self::Type) . "." . $attr, self::$available_properties[$attr]);
|
||||
|
@ -16,8 +16,8 @@ use openid\requests\contexts\RequestContext;
|
||||
use openid\requests\OpenIdRequest;
|
||||
use openid\responses\contexts\ResponseContext;
|
||||
use openid\responses\OpenIdResponse;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
/**
|
||||
* Class OpenIdSREGExtension
|
||||
@ -96,7 +96,7 @@ class OpenIdSREGExtension extends OpenIdExtension
|
||||
$opt_attributes = $simple_reg_request->getOptionalAttributes();
|
||||
$attributes = array_merge($attributes, $opt_attributes);
|
||||
|
||||
$auth_service = Registry::getInstance()->get(ServiceCatalog::AuthenticationService);
|
||||
$auth_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AuthenticationService);
|
||||
$user = $auth_service->getCurrentUser();
|
||||
|
||||
foreach ($attributes as $attr => $value) {
|
||||
|
@ -11,8 +11,8 @@ namespace openid\extensions\implementations;
|
||||
use Exception;
|
||||
use openid\OpenIdMessage;
|
||||
use openid\requests\OpenIdRequest;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
/**
|
||||
* Class OpenIdSREGRequest
|
||||
@ -32,7 +32,7 @@ class OpenIdSREGRequest extends OpenIdRequest
|
||||
parent::__construct($message);
|
||||
$this->attributes = array();
|
||||
$this->optional_attributes = array();
|
||||
$this->log = Registry::getInstance()->get(ServiceCatalog::LogService);
|
||||
$this->log = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::LogService);
|
||||
}
|
||||
|
||||
public function isValid()
|
||||
|
@ -13,8 +13,8 @@ use openid\exceptions\InvalidOpenIdMessageException;
|
||||
use openid\helpers\OpenIdErrorMessages;
|
||||
use openid\OpenIdMessage;
|
||||
use openid\services\ILogService;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
/**
|
||||
* Class OpenIdMessageHandler
|
||||
@ -34,7 +34,7 @@ abstract class OpenIdMessageHandler
|
||||
{
|
||||
$this->successor = $successor;
|
||||
$this->log = $log;
|
||||
$this->checkpoint_service = Registry::getInstance()->get(ServiceCatalog::CheckPointService);
|
||||
$this->checkpoint_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::CheckPointService);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -14,8 +14,8 @@ use openid\responses\OpenIdDiffieHellmanAssociationSessionResponse;
|
||||
use Zend\Crypt\PublicKey\DiffieHellman;
|
||||
use openid\helpers\OpenIdCryptoHelper;
|
||||
use openid\model\IAssociation;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
use openid\helpers\AssocHandleGenerator;
|
||||
|
||||
class SessionAssociationDHStrategy implements ISessionAssociationStrategy
|
||||
@ -32,9 +32,9 @@ class SessionAssociationDHStrategy implements ISessionAssociationStrategy
|
||||
public function __construct(OpenIdDHAssociationSessionRequest $request)
|
||||
{
|
||||
$this->current_request = $request;
|
||||
$this->association_service = Registry::getInstance()->get(ServiceCatalog::AssociationService);
|
||||
$this->server_configuration_service = Registry::getInstance()->get(ServiceCatalog:: ServerConfigurationService);
|
||||
$this->log = Registry::getInstance()->get(ServiceCatalog:: LogService);
|
||||
$this->association_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AssociationService);
|
||||
$this->server_configuration_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog:: ServerConfigurationService);
|
||||
$this->log = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog:: LogService);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -17,8 +17,8 @@ use Zend\Crypt\Exception\InvalidArgumentException;
|
||||
use Zend\Crypt\Exception\RuntimeException;
|
||||
use openid\helpers\OpenIdCryptoHelper;
|
||||
use openid\model\IAssociation;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
use openid\helpers\AssocHandleGenerator;
|
||||
|
||||
class SessionAssociationUnencryptedStrategy implements ISessionAssociationStrategy {
|
||||
@ -32,9 +32,9 @@ class SessionAssociationUnencryptedStrategy implements ISessionAssociationStrate
|
||||
public function __construct(OpenIdAssociationSessionRequest $request)
|
||||
{
|
||||
$this->current_request = $request;
|
||||
$this->association_service = Registry::getInstance()->get(ServiceCatalog::AssociationService);
|
||||
$this->server_configuration_service = Registry::getInstance()->get(ServiceCatalog:: ServerConfigurationService);
|
||||
$this->log = Registry::getInstance()->get(ServiceCatalog:: LogService);
|
||||
$this->association_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::AssociationService);
|
||||
$this->server_configuration_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog:: ServerConfigurationService);
|
||||
$this->log = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog:: LogService);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,7 +4,7 @@ namespace openid\model;
|
||||
|
||||
use openid\exceptions\InvalidNonce;
|
||||
use openid\helpers\OpenIdErrorMessages;
|
||||
use openid\services\Registry;
|
||||
use openid\services\OpenIdRegistry;
|
||||
|
||||
class OpenIdNonce
|
||||
{
|
||||
@ -71,7 +71,7 @@ class OpenIdNonce
|
||||
*/
|
||||
public function isValid()
|
||||
{
|
||||
$server_configuration_service = Registry::getInstance()->get("openid\\services\\IServerConfigurationService");
|
||||
$server_configuration_service = OpenIdRegistry::getInstance()->get("openid\\services\\IServerConfigurationService");
|
||||
$allowed_skew = $server_configuration_service->getConfigValue("Nonce.Lifetime");
|
||||
$now = time();
|
||||
// Time after which we should not use the nonce
|
||||
|
@ -5,8 +5,8 @@ namespace openid\requests;
|
||||
use openid\helpers\OpenIdUriHelper;
|
||||
use openid\OpenIdMessage;
|
||||
use openid\OpenIdProtocol;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
class OpenIdAuthenticationRequest extends OpenIdRequest
|
||||
{
|
||||
@ -91,7 +91,7 @@ class OpenIdAuthenticationRequest extends OpenIdRequest
|
||||
* other information in its payload, using extensions.
|
||||
*/
|
||||
|
||||
$server_configuration_service = Registry::getInstance()->get(ServiceCatalog::ServerConfigurationService);
|
||||
$server_configuration_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerConfigurationService);
|
||||
if (is_null($claimed_id) && is_null($identity))
|
||||
return false;
|
||||
//http://specs.openid.net/auth/2.0/identifier_select
|
||||
|
@ -5,7 +5,7 @@ namespace openid\requests;
|
||||
use openid\helpers\OpenIdUriHelper;
|
||||
use openid\OpenIdMessage;
|
||||
use openid\OpenIdProtocol;
|
||||
use openid\services\Registry;
|
||||
use openid\services\OpenIdRegistry;
|
||||
|
||||
class OpenIdCheckAuthenticationRequest extends OpenIdAuthenticationRequest
|
||||
{
|
||||
@ -32,7 +32,7 @@ class OpenIdCheckAuthenticationRequest extends OpenIdAuthenticationRequest
|
||||
$claimed_identity = $this->getClaimedId();
|
||||
$claimed_realm = $this->getRealm();
|
||||
$claimed_returnTo = $this->getReturnTo();
|
||||
$server_configuration_service = Registry::getInstance()->get("openid\\services\\IServerConfigurationService");
|
||||
$server_configuration_service = OpenIdRegistry::getInstance()->get("openid\\services\\IServerConfigurationService");
|
||||
if (
|
||||
!is_null($mode) && !empty($mode) && $mode == OpenIdProtocol::CheckAuthenticationMode
|
||||
&& !is_null($claimed_returnTo) && !empty($claimed_returnTo) && OpenIdUriHelper::checkReturnTo($claimed_returnTo)
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace openid\services;
|
||||
|
||||
|
||||
class Registry
|
||||
class OpenIdRegistry
|
||||
{
|
||||
|
||||
private static $instance = null;
|
||||
@ -14,7 +14,7 @@ class Registry
|
||||
public static function getInstance()
|
||||
{
|
||||
if (self::$instance === null) {
|
||||
self::$instance = new Registry();
|
||||
self::$instance = new OpenIdRegistry();
|
||||
}
|
||||
|
||||
return self::$instance;
|
@ -3,7 +3,7 @@
|
||||
namespace openid\services;
|
||||
|
||||
|
||||
class ServiceCatalog
|
||||
class OpenIdServiceCatalog
|
||||
{
|
||||
const MementoService = 'openid\\services\\IMementoOpenIdRequestService';
|
||||
const AuthenticationStrategy = 'openid\\handlers\\IOpenIdAuthenticationStrategy';
|
@ -5,7 +5,7 @@ namespace openid\strategies;
|
||||
use openid\responses\OpenIdDirectResponse;
|
||||
use openid\responses\OpenIdIndirectResponse;
|
||||
use openid\responses\OpenIdResponse;
|
||||
use openid\services\Registry;
|
||||
use openid\services\OpenIdRegistry;
|
||||
|
||||
class OpenIdResponseStrategyFactoryMethod
|
||||
{
|
||||
@ -19,12 +19,12 @@ class OpenIdResponseStrategyFactoryMethod
|
||||
switch ($type) {
|
||||
case OpenIdIndirectResponse::OpenIdIndirectResponse:
|
||||
{
|
||||
return Registry::getInstance()->get(OpenIdIndirectResponse::OpenIdIndirectResponse);
|
||||
return OpenIdRegistry::getInstance()->get(OpenIdIndirectResponse::OpenIdIndirectResponse);
|
||||
}
|
||||
break;
|
||||
case OpenIdDirectResponse::OpenIdDirectResponse:
|
||||
{
|
||||
return Registry::getInstance()->get(OpenIdDirectResponse::OpenIdDirectResponse);
|
||||
return OpenIdRegistry::getInstance()->get(OpenIdDirectResponse::OpenIdDirectResponse);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -10,8 +10,8 @@ namespace services;
|
||||
|
||||
use Log;
|
||||
use openid\services\ISecurityPolicyCounterMeasure;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
use auth\OpenIdUser;
|
||||
use Exception;
|
||||
|
||||
@ -23,8 +23,8 @@ class LockUserCounterMeasure implements ISecurityPolicyCounterMeasure
|
||||
try {
|
||||
if (!isset($params["user_identifier"])) return;
|
||||
$user_identifier = $params["user_identifier"];
|
||||
$server_configuration = Registry::getInstance()->get(ServiceCatalog::ServerConfigurationService);
|
||||
$user_service = Registry::getInstance()->get(ServiceCatalog::UserService);
|
||||
$server_configuration = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::ServerConfigurationService);
|
||||
$user_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::UserService);
|
||||
|
||||
$user = OpenIdUser::where('external_id', '=', $user_identifier)->first();
|
||||
if(is_null($user))
|
||||
|
@ -3,8 +3,8 @@
|
||||
namespace services;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use openid\services\Registry;
|
||||
use openid\services\ServiceCatalog;
|
||||
use openid\services\OpenIdRegistry;
|
||||
use openid\services\OpenIdServiceCatalog;
|
||||
|
||||
class ServicesProvider extends ServiceProvider
|
||||
{
|
||||
@ -15,22 +15,23 @@ class ServicesProvider extends ServiceProvider
|
||||
|
||||
//register on boot bc we rely on Illuminate\Redis\ServiceProvider\RedisServiceProvider
|
||||
|
||||
$this->app->singleton(ServiceCatalog::MementoService, 'services\\MementoRequestService');
|
||||
$this->app->singleton(ServiceCatalog::AuthenticationStrategy, 'services\\AuthenticationStrategy');
|
||||
$this->app->singleton(ServiceCatalog::ServerExtensionsService, 'services\\ServerExtensionsService');
|
||||
$this->app->singleton(ServiceCatalog::AssociationService, 'services\\AssociationService');
|
||||
$this->app->singleton(ServiceCatalog::TrustedSitesService, 'services\\TrustedSitesService');
|
||||
$this->app->singleton(ServiceCatalog::ServerConfigurationService, 'services\\ServerConfigurationService');
|
||||
$this->app->singleton(ServiceCatalog::UserService, 'services\\UserService');
|
||||
$this->app->singleton(ServiceCatalog::NonceService, 'services\\NonceService');
|
||||
$this->app->singleton(ServiceCatalog::LogService, 'services\\LogService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::MementoService, 'services\\MementoRequestService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::AuthenticationStrategy, 'services\\AuthenticationStrategy');
|
||||
$this->app->singleton(OpenIdServiceCatalog::ServerExtensionsService, 'services\\ServerExtensionsService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::AssociationService, 'services\\AssociationService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::TrustedSitesService, 'services\\TrustedSitesService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::ServerConfigurationService, 'services\\ServerConfigurationService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::UserService, 'services\\UserService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::NonceService, 'services\\NonceService');
|
||||
$this->app->singleton(OpenIdServiceCatalog::LogService, 'services\\LogService');
|
||||
|
||||
$this->app->singleton("services\\DelayCounterMeasure", 'services\\DelayCounterMeasure');
|
||||
$this->app->singleton("services\\LockUserCounterMeasure", 'services\\LockUserCounterMeasure');
|
||||
$this->app->singleton("services\\BlacklistSecurityPolicy", 'services\\BlacklistSecurityPolicy');
|
||||
$this->app->singleton("services\\LockUserSecurityPolicy", 'services\\LockUserSecurityPolicy');
|
||||
|
||||
$this->app->singleton('services\\IUserActionService', 'services\\UserActionService');
|
||||
$this->app->singleton(ServiceCatalog::CheckPointService,
|
||||
$this->app->singleton(OpenIdServiceCatalog::CheckPointService,
|
||||
function(){
|
||||
//set security policies
|
||||
$delay_counter_measure = $this->app->make("services\\DelayCounterMeasure");
|
||||
@ -48,16 +49,16 @@ class ServicesProvider extends ServiceProvider
|
||||
return $checkpoint_service;
|
||||
});
|
||||
|
||||
Registry::getInstance()->set(ServiceCatalog::MementoService, $this->app->make(ServiceCatalog::MementoService));
|
||||
Registry::getInstance()->set(ServiceCatalog::AuthenticationStrategy, $this->app->make(ServiceCatalog::AuthenticationStrategy));
|
||||
Registry::getInstance()->set(ServiceCatalog::ServerExtensionsService, $this->app->make(ServiceCatalog::ServerExtensionsService));
|
||||
Registry::getInstance()->set(ServiceCatalog::AssociationService, $this->app->make(ServiceCatalog::AssociationService));
|
||||
Registry::getInstance()->set(ServiceCatalog::TrustedSitesService, $this->app->make(ServiceCatalog::TrustedSitesService));
|
||||
Registry::getInstance()->set(ServiceCatalog::ServerConfigurationService, $this->app->make(ServiceCatalog::ServerConfigurationService));
|
||||
Registry::getInstance()->set(ServiceCatalog::UserService, $this->app->make(ServiceCatalog::UserService));
|
||||
Registry::getInstance()->set(ServiceCatalog::NonceService, $this->app->make(ServiceCatalog::NonceService));
|
||||
Registry::getInstance()->set(ServiceCatalog::LogService, $this->app->make(ServiceCatalog::LogService));
|
||||
Registry::getInstance()->set(ServiceCatalog::CheckPointService, $this->app->make(ServiceCatalog::CheckPointService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::MementoService, $this->app->make(OpenIdServiceCatalog::MementoService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::AuthenticationStrategy, $this->app->make(OpenIdServiceCatalog::AuthenticationStrategy));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::ServerExtensionsService, $this->app->make(OpenIdServiceCatalog::ServerExtensionsService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::AssociationService, $this->app->make(OpenIdServiceCatalog::AssociationService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::TrustedSitesService, $this->app->make(OpenIdServiceCatalog::TrustedSitesService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::ServerConfigurationService, $this->app->make(OpenIdServiceCatalog::ServerConfigurationService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::UserService, $this->app->make(OpenIdServiceCatalog::UserService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::NonceService, $this->app->make(OpenIdServiceCatalog::NonceService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::LogService, $this->app->make(OpenIdServiceCatalog::LogService));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdServiceCatalog::CheckPointService, $this->app->make(OpenIdServiceCatalog::CheckPointService));
|
||||
}
|
||||
|
||||
public function register()
|
||||
|
72
app/services/oauth2/MementoOAuth2RequestService.php
Normal file
72
app/services/oauth2/MementoOAuth2RequestService.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace services\oauth2;
|
||||
|
||||
use oauth2\services\IMementoOAuth2RequestService;
|
||||
use oauth2\services\OAuth2Request;
|
||||
use oauth2\requests\OAuth2AuthorizationRequest;
|
||||
|
||||
class MementoOAuth2RequestService implements IMementoOAuth2RequestService{
|
||||
|
||||
/**
|
||||
* Save current OAuth2AuthorizationRequest till next request
|
||||
* @return bool
|
||||
*/
|
||||
public function saveCurrentRequest()
|
||||
{
|
||||
$input = Input::all();
|
||||
$oauth2_params = array();
|
||||
foreach ($input as $key => $value) {
|
||||
if (array_key_exists($key,OAuth2AuthorizationRequest::$params) === true) {
|
||||
array_push($oauth2_params, $key);
|
||||
}
|
||||
}
|
||||
|
||||
if (count($oauth2_params) > 0) {
|
||||
Input::flashOnly($oauth2_params);
|
||||
return true;
|
||||
} else {
|
||||
$old_data = Input::old();
|
||||
$oauth2_params = array();
|
||||
foreach ($old_data as $key => $value) {
|
||||
if (array_key_exists($key,OAuth2AuthorizationRequest::$params) === true) {
|
||||
array_push($oauth2_params, $key);
|
||||
}
|
||||
}
|
||||
if (count($oauth2_params) > 0) {
|
||||
Session::reflash();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/** Retrieve last OAuth2AuthorizationRequest
|
||||
* @return OAuth2AuthorizationRequest;
|
||||
*/
|
||||
public function getCurrentRequest()
|
||||
{
|
||||
$msg = new OAuth2AuthorizationRequest(Input::all());
|
||||
if (!$msg->isValid()) {
|
||||
$msg = null;
|
||||
$old_data = Input::old();
|
||||
$oauth2_params = array();
|
||||
foreach ($old_data as $key => $value) {
|
||||
if (array_key_exists($key,OAuth2AuthorizationRequest::$params) === true) {
|
||||
$oauth2_params[$key] = $value;
|
||||
}
|
||||
}
|
||||
if (count($oauth2_params) > 0) {
|
||||
$msg = new OAuth2AuthorizationRequest($oauth2_params);
|
||||
}
|
||||
}
|
||||
return $msg;
|
||||
}
|
||||
|
||||
public function clearCurrentRequest()
|
||||
{
|
||||
// TODO: Implement clearCurrentRequest() method.
|
||||
}
|
||||
}
|
@ -11,8 +11,8 @@
|
||||
|
|
||||
*/
|
||||
use openid\exceptions\InvalidOpenIdMessageException;
|
||||
use \openid\services\Registry;
|
||||
use \openid\services\ServiceCatalog;
|
||||
use \openid\services\OpenIdRegistry;
|
||||
use \openid\services\OpenIdServiceCatalog;
|
||||
|
||||
ClassLoader::addDirectories(array(
|
||||
|
||||
@ -60,7 +60,7 @@ $mono_log->pushHandler($handler);
|
||||
|
||||
|
||||
App::error(function (Exception $exception, $code) {
|
||||
$checkpoint_service = Registry::getInstance()->get(ServiceCatalog::CheckPointService);
|
||||
$checkpoint_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::CheckPointService);
|
||||
Log::error($exception);
|
||||
if($checkpoint_service ){
|
||||
$checkpoint_service->trackException($exception);
|
||||
@ -70,7 +70,7 @@ App::error(function (Exception $exception, $code) {
|
||||
|
||||
|
||||
App::error(function (InvalidOpenIdMessageException $exception, $code) {
|
||||
$checkpoint_service = Registry::getInstance()->get(ServiceCatalog::CheckPointService);
|
||||
$checkpoint_service = OpenIdRegistry::getInstance()->get(OpenIdServiceCatalog::CheckPointService);
|
||||
Log::error($exception);
|
||||
if($checkpoint_service ){
|
||||
$checkpoint_service->trackException($exception);
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
namespace strategies;
|
||||
|
||||
use Auth;
|
||||
use openid\OpenIdProtocol;
|
||||
use openid\requests\OpenIdAuthenticationRequest;
|
||||
use openid\responses\OpenIdNonImmediateNegativeAssertion;
|
||||
use openid\services\IMementoOpenIdRequestService;
|
||||
use openid\strategies\OpenIdResponseStrategyFactoryMethod;
|
||||
use Redirect;
|
||||
use services\IPHelper;
|
||||
use services\IUserActionService;
|
||||
use \Auth;
|
||||
use \Redirect;
|
||||
use \View;
|
||||
use View;
|
||||
|
||||
class OpenIdLoginStrategy implements ILoginStrategy
|
||||
{
|
||||
@ -24,30 +24,25 @@ class OpenIdLoginStrategy implements ILoginStrategy
|
||||
IUserActionService $user_action_service,
|
||||
IAuthService $auth_service)
|
||||
{
|
||||
$this->memento_service = $memento_service;
|
||||
$this->memento_service = $memento_service;
|
||||
$this->user_action_service = $user_action_service;
|
||||
$this->auth_service = $auth_service;
|
||||
$this->auth_service = $auth_service;
|
||||
}
|
||||
|
||||
public function getLogin()
|
||||
{
|
||||
if (Auth::guest()) {
|
||||
$msg = $this->memento_service->getCurrentRequest();
|
||||
if (is_null($msg) || !$msg->isValid() || !OpenIdAuthenticationRequest::IsOpenIdAuthenticationRequest($msg))
|
||||
return View::make("login");
|
||||
else {
|
||||
$auth_request = new OpenIdAuthenticationRequest($msg);
|
||||
$params = array('realm' => $auth_request->getRealm());
|
||||
|
||||
if (!$auth_request->isIdentitySelectByOP()) {
|
||||
$params['claimed_id'] = $auth_request->getClaimedId();
|
||||
$params['identity'] = $auth_request->getIdentity();
|
||||
$params['identity_select'] = false;
|
||||
} else {
|
||||
$params['identity_select'] = true;
|
||||
}
|
||||
return View::make("login", $params);
|
||||
$msg = $this->memento_service->getCurrentRequest();
|
||||
$auth_request = new OpenIdAuthenticationRequest($msg);
|
||||
$params = array('realm' => $auth_request->getRealm());
|
||||
if (!$auth_request->isIdentitySelectByOP()) {
|
||||
$params['claimed_id'] = $auth_request->getClaimedId();
|
||||
$params['identity'] = $auth_request->getIdentity();
|
||||
$params['identity_select'] = false;
|
||||
} else {
|
||||
$params['identity_select'] = true;
|
||||
}
|
||||
return View::make("login", $params);
|
||||
} else {
|
||||
return Redirect::action("UserController@getProfile");
|
||||
}
|
||||
@ -63,10 +58,10 @@ class OpenIdLoginStrategy implements ILoginStrategy
|
||||
|
||||
public function cancelLogin()
|
||||
{
|
||||
$msg = $this->memento_service->getCurrentRequest();
|
||||
$cancel_response = new OpenIdNonImmediateNegativeAssertion();
|
||||
$cancel_response->setReturnTo($msg->getParam(OpenIdProtocol::OpenIDProtocol_ReturnTo));
|
||||
$strategy = OpenIdResponseStrategyFactoryMethod::buildStrategy($cancel_response);
|
||||
return $strategy->handle($cancel_response);
|
||||
$msg = $this->memento_service->getCurrentRequest();
|
||||
$cancel_response = new OpenIdNonImmediateNegativeAssertion();
|
||||
$cancel_response->setReturnTo($msg->getParam(OpenIdProtocol::OpenIDProtocol_ReturnTo));
|
||||
$strategy = OpenIdResponseStrategyFactoryMethod::buildStrategy($cancel_response);
|
||||
return $strategy->handle($cancel_response);
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ namespace strategies;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use openid\responses\OpenIdDirectResponse;
|
||||
use openid\responses\OpenIdIndirectResponse;
|
||||
use openid\services\Registry;
|
||||
use openid\services\OpenIdRegistry;
|
||||
|
||||
class OpenIdResponseStrategyProvider extends ServiceProvider
|
||||
{
|
||||
@ -16,8 +16,8 @@ class OpenIdResponseStrategyProvider extends ServiceProvider
|
||||
$this->app->singleton(OpenIdDirectResponse::OpenIdDirectResponse, 'strategies\\OpenIdDirectResponseStrategy');
|
||||
$this->app->singleton(OpenIdIndirectResponse::OpenIdIndirectResponse, 'strategies\\OpenIdIndirectResponseStrategy');
|
||||
|
||||
Registry::getInstance()->set(OpenIdDirectResponse::OpenIdDirectResponse, $this->app->make(OpenIdDirectResponse::OpenIdDirectResponse));
|
||||
Registry::getInstance()->set(OpenIdIndirectResponse::OpenIdIndirectResponse, $this->app->make(OpenIdIndirectResponse::OpenIdIndirectResponse));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdDirectResponse::OpenIdDirectResponse, $this->app->make(OpenIdDirectResponse::OpenIdDirectResponse));
|
||||
OpenIdRegistry::getInstance()->set(OpenIdIndirectResponse::OpenIdIndirectResponse, $this->app->make(OpenIdIndirectResponse::OpenIdIndirectResponse));
|
||||
}
|
||||
|
||||
public function register()
|
||||
|
Loading…
x
Reference in New Issue
Block a user