|
@@ -90,7 +90,10 @@ class OAuthProxyListener implements ListenerInterface
|
|
|
$messageLog = "PHP-AUTH (IP: " . $request->getClientIp() . ")";
|
|
|
// el header contiene php-auth-user && php-auth-pw
|
|
|
$error = !$this->PHPAuth($request);
|
|
|
- } elseif ($request->headers->has("authorization")) {
|
|
|
+ } else if($request->headers->has("microservice") && $request->headers->has("authorization")){
|
|
|
+ $messageLog = "AUTHORIZATION A (IP: " . $request->getClientIp() . ")";
|
|
|
+ $error = !$this->PHPMicroservice($request);
|
|
|
+ } elseif ($request->headers->has("authorization") && !$request->headers->has("microservice")) {
|
|
|
$messageLog = "AUTHORIZATION A (IP: " . $request->getClientIp() . ")";
|
|
|
// el header contiene authorization
|
|
|
$error = !$this->PHPAuthorization($request);
|
|
@@ -141,6 +144,42 @@ class OAuthProxyListener implements ListenerInterface
|
|
|
return $this->createCustomOAuthUser($username, $accessToken, $auth_info);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param Request $request
|
|
|
+ * @return bool Retorna TRUE si pudo crear y setear el CustomOAuthUser
|
|
|
+ */
|
|
|
+ private function PHPMicroservice($request)
|
|
|
+ {
|
|
|
+ $authorization = $request->headers->get("authorization");
|
|
|
+ $clientId = $request->headers->get('clientid');
|
|
|
+ $clientSecret = $request->headers->get('clientsecret');
|
|
|
+
|
|
|
+ $pieces = explode(' ', $authorization);
|
|
|
+ $accessToken = array(
|
|
|
+ 'access_token' => $pieces[1],
|
|
|
+ );
|
|
|
+ if(getenv('OAUTH_CLIENT_ID') != $clientId || getenv('OAUTH_CLIENT_SECRET') != $clientSecret){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $auth_info = [
|
|
|
+ 'username' => 'Microservice',
|
|
|
+ 'roles' => [
|
|
|
+ 'ROLE_USER'
|
|
|
+ ],
|
|
|
+ 'hasIntercom' => false,
|
|
|
+ 'tenancyCurrent' => null,
|
|
|
+ 'tenancies' => []
|
|
|
+ ];
|
|
|
+
|
|
|
+ if (isset($auth_info['username'])) {
|
|
|
+ $username = $auth_info['username'];
|
|
|
+ return $this->createCustomOAuthUser($username, $accessToken, $auth_info);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Crea el custom user.
|
|
|
* @param string $username
|