|
@@ -16,15 +16,15 @@ class OAuthProxyListener implements ListenerInterface
|
|
{
|
|
{
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @var TokenStorageInterface
|
|
|
|
|
|
+ * @var TokenStorageInterface
|
|
*/
|
|
*/
|
|
protected $tokenStorage;
|
|
protected $tokenStorage;
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @var AuthenticationManagerInterface
|
|
|
|
|
|
+ * @var AuthenticationManagerInterface
|
|
*/
|
|
*/
|
|
protected $authenticationManager;
|
|
protected $authenticationManager;
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @var AccessTokenService
|
|
* @var AccessTokenService
|
|
*/
|
|
*/
|
|
@@ -45,13 +45,13 @@ class OAuthProxyListener implements ListenerInterface
|
|
|
|
|
|
/**
|
|
/**
|
|
* Se crea el User y Token mediante alguno de los métodos
|
|
* Se crea el User y Token mediante alguno de los métodos
|
|
- *
|
|
|
|
|
|
+ *
|
|
* 1. Http Basic
|
|
* 1. Http Basic
|
|
* 2. Authorization
|
|
* 2. Authorization
|
|
* 3. Client Ip
|
|
* 3. Client Ip
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param GetResponseEvent $event
|
|
* @param GetResponseEvent $event
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @return type
|
|
* @return type
|
|
*/
|
|
*/
|
|
public function handle(GetResponseEvent $event)
|
|
public function handle(GetResponseEvent $event)
|
|
@@ -96,21 +96,21 @@ class OAuthProxyListener implements ListenerInterface
|
|
} else {
|
|
} else {
|
|
return $this->deny($event);
|
|
return $this->deny($event);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
try {
|
|
try {
|
|
$user = new CustomOAuthUser($username);
|
|
$user = new CustomOAuthUser($username);
|
|
if (count($auth_info)) {
|
|
if (count($auth_info)) {
|
|
$user->setRoles($auth_info['roles']);
|
|
$user->setRoles($auth_info['roles']);
|
|
- $user->setTenancies($auth_info['tenancies']);
|
|
|
|
|
|
+ $user->setTenancies([$auth_info['tenancies']]);
|
|
$user->setTenancyCurrent($auth_info['tenancyCurrent']);
|
|
$user->setTenancyCurrent($auth_info['tenancyCurrent']);
|
|
}
|
|
}
|
|
|
|
|
|
$token = new OAuthToken($accessToken, $user->getRoles());
|
|
$token = new OAuthToken($accessToken, $user->getRoles());
|
|
$token->setUser($user);
|
|
$token->setUser($user);
|
|
-
|
|
|
|
|
|
+
|
|
$authToken = $this->authenticationManager->authenticate($token);
|
|
$authToken = $this->authenticationManager->authenticate($token);
|
|
$this->tokenStorage->setToken($authToken);
|
|
$this->tokenStorage->setToken($authToken);
|
|
-
|
|
|
|
|
|
+
|
|
return;
|
|
return;
|
|
} catch (\Exception $failed) {
|
|
} catch (\Exception $failed) {
|
|
var_dump($failed->getMessage());
|
|
var_dump($failed->getMessage());
|
|
@@ -118,20 +118,20 @@ class OAuthProxyListener implements ListenerInterface
|
|
|
|
|
|
$this->deny($event);
|
|
$this->deny($event);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @param GetResponseEvent $event
|
|
* @param GetResponseEvent $event
|
|
*/
|
|
*/
|
|
private function deny(GetResponseEvent $event)
|
|
private function deny(GetResponseEvent $event)
|
|
{
|
|
{
|
|
$this->tokenStorage->setToken(null);
|
|
$this->tokenStorage->setToken(null);
|
|
-
|
|
|
|
|
|
+
|
|
$response = new Response();
|
|
$response = new Response();
|
|
$response->setStatusCode(Response::HTTP_FORBIDDEN);
|
|
$response->setStatusCode(Response::HTTP_FORBIDDEN);
|
|
$event->setResponse($response);
|
|
$event->setResponse($response);
|
|
-
|
|
|
|
|
|
+
|
|
echo 'The OAuth authentication failed.' . PHP_EOL;
|
|
echo 'The OAuth authentication failed.' . PHP_EOL;
|
|
-
|
|
|
|
|
|
+
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|