public function get_usuario(request $request = null) { $cert_valido = isset($_SERVER['SSL_CLIENT_VERIFY']) && $_SERVER['SSL_CLIENT_VERIFY'] == 'SUCCESS'; //Se presenta certif. y esta verificado $hay_serial = isset($_SERVER['SSL_CLIENT_M_SERIAL']); //Tiene serial el cert? $hay_CA = isset($_SERVER['SSL_CLIENT_I_DN']); $hay_vto = isset($_SERVER['SSL_CLIENT_V_END']); //Hay vencimiento? if (!$hay_serial || !$hay_vto || !$cert_valido || !$hay_CA) { return; } if ($_SERVER['SSL_CLIENT_V_REMAIN'] <= 0) { //Le quedan dias de validez al cert? return; } if (isset($_SERVER['SSL_CLIENT_S_DN_CN']) && trim($_SERVER['SSL_CLIENT_S_DN_CN']) != '') { //Busco el nombre del cliente $user = trim($_SERVER['SSL_CLIENT_S_DN_CN']); $cert = $_SERVER['SSL_CLIENT_CERT']; if ($this->es_valido($user, $cert)) { $usuario = new rest_usuario(); $usuario->set_usuario($user); return $usuario; } } return; //anonimo }
public function get_usuario(request $request = null) { if (isset($_SERVER['PHP_AUTH_USER'])) { $password = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : null; $user = $_SERVER['PHP_AUTH_USER']; //validar user password if ($this->validador_usuarios->es_valido($user, $password)) { $usuario = new rest_usuario(); $usuario->set_usuario($user); return $usuario; } } return; //anonimo }
public function get_usuario(request $request = null) { if (isset($_SERVER['PHP_AUTH_DIGEST']) && ($data = $this->http_digest_parse($_SERVER['PHP_AUTH_DIGEST']))) { $user = $data['username']; $password_requerido = $this->passwords->get_password($user); if (null !== $password_requerido) { if ($this->validar_digest($data, $this->realm, $password_requerido)) { $usuario = new rest_usuario(); $usuario->set_usuario($user); return $usuario; } } } return; //anonimo }
public function get_usuario(request $request = null) { $api_key = $request->get('api_key', ''); $username = $this->api_keys->get_usuario_api_key($api_key); if ($username !== null) { $usuario = new rest_usuario(); $usuario->set_usuario($username); return $usuario; } if (isset($api_key)) { $this->mensaje = "No se encontro usuario para '?api_key={$api_key}'"; } else { $this->mensaje = 'Debe proveer una api_key en la URL ?api_key='; } return; //anonimo }
/** * @param rest_usuario $usuario * @param string $ruta * * @return bool */ public function tiene_acceso($usuario, $ruta) { if (null === $usuario) { return false; } // en el contexto de oauth2 los perfiles son los scopes $user_scopes = $usuario->get_perfiles(); if (empty($user_scopes)) { $user_scopes = ''; } // se chequea que todos los scopes requeridos estén en el arreglo de scopes del usuario $user_scopes_array = explode(' ', $user_scopes); foreach ($this->scopes as $required_scope) { if (!in_array($required_scope, $user_scopes_array)) { return false; } } return true; }
/** * Obtiene un usuario si está logueado o si lo puede obtener del request o cualquier otro medio. * Si el usuario es nulo, se puede llegar a llamar a requerir_autenticacion (si la operacion lo requiere). * En caso de errores, guardarlos y enviarlos en la respuesta. * * @param request $request * * @return rest_usuario el usuario logueado o null si es anonimo */ public function get_usuario(request $request = null) { $auth_header = $request->headers('HTTP_AUTHORIZATION', null); if ($auth_header === null) { return; } $well_formed_header = preg_match('/Bearer (.+)/i', $auth_header, $result); if ($well_formed_header === 0 || $well_formed_header === false) { return; } $token = $result[1]; $info = $this->decoder->decode($token); if ($info === null) { return; } $usuario = new rest_usuario(); $usuario->set_usuario($info->get_user_id()); $usuario->set_perfiles($info->get_scopes()); return $usuario; }