|
@@ -45,6 +45,12 @@ class OAuthProxyListener implements ListenerInterface
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * Se crea el User y Token mediante alguno de los métodos
|
|
|
|
+ *
|
|
|
|
+ * 1. Http Basic
|
|
|
|
+ * 2. Authorization
|
|
|
|
+ * 3. Client Ip
|
|
|
|
+ *
|
|
* @param GetResponseEvent $event
|
|
* @param GetResponseEvent $event
|
|
*
|
|
*
|
|
* @return type
|
|
* @return type
|
|
@@ -52,16 +58,35 @@ class OAuthProxyListener implements ListenerInterface
|
|
public function handle(GetResponseEvent $event)
|
|
public function handle(GetResponseEvent $event)
|
|
{
|
|
{
|
|
$request = $event->getRequest();
|
|
$request = $event->getRequest();
|
|
-
|
|
|
|
|
|
+ $auth_info = array();
|
|
if ($request->headers->has("php-auth-user") && $request->headers->has("php-auth-pw")) {
|
|
if ($request->headers->has("php-auth-user") && $request->headers->has("php-auth-pw")) {
|
|
$username = $request->headers->get("php-auth-user");
|
|
$username = $request->headers->get("php-auth-user");
|
|
$password = $request->headers->get("php-auth-pw");
|
|
$password = $request->headers->get("php-auth-pw");
|
|
|
|
+ $token = $this->accessTokenService->getToken($username, $password);
|
|
|
|
+ $auth_info = $this->accessTokenService->getUserInfo($username, $password);
|
|
|
|
+ } elseif ($request->headers->has("authorization")) {
|
|
|
|
+ $authorization = $request->headers->get("authorization");
|
|
|
|
+ $auth_info = $this->accessTokenService->requestUserInfo($authorization);
|
|
|
|
+ if (isset($auth_info['username'])) {
|
|
|
|
+ $username = $auth_info['username'];
|
|
|
|
+ } else {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ } elseif ($request->getClientIp()) {
|
|
|
|
+ $username = $clientIp = $request->getClientIp();
|
|
|
|
+ if (\AuthBundle\Utils\IpUtils::checkIp($clientIp) === false) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ $auth_info['roles'] = array('ROLE_USER');
|
|
|
|
+ // @TODO: Traer la tenencia Base de la app Base
|
|
|
|
+ $tenancy = array(
|
|
|
|
+ 'id' => 1,
|
|
|
|
+ 'name' => 'Tenencia Base',
|
|
|
|
+ );
|
|
|
|
+ $auth_info['tenancies'] = $auth_info['tenancyCurrent'] = $tenancy;
|
|
} else {
|
|
} else {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
-
|
|
|
|
- $token = $this->accessTokenService->getToken($username, $password);
|
|
|
|
- $auth_info = $this->accessTokenService->getUserInfo($username, $password);
|
|
|
|
|
|
|
|
$user = new CustomOAuthUser($username);
|
|
$user = new CustomOAuthUser($username);
|
|
$user->setRoles($auth_info['roles']);
|
|
$user->setRoles($auth_info['roles']);
|