<commit_before><?php
/**	\file
 *	FVAL PHP Framework for Web Applications
 *
 *  \copyright	Copyright (c) 2007-2015 FVAL Consultoria e Informática Ltda.\n
 *  \copyright	Copyright (c) 2007-2015 Fernando Val\n
 *	\copyright Copyright (c) 2014 <NAME>
 *
 *	\brief		Gerenciador de autenticação de identidades
 *	\warning	Este arquivo é parte integrante do framework e não pode ser omitido
 *	\version	0.1
 *  \author		<NAME> - <EMAIL>
 *	\ingroup	framework
 */
namespace FW\Security;

use FW\Session;
use FW\Cookie;

/**
 * \brief		Gerenciador de autenticação de identidades
 */
class Authentication 
{
    /// Driver de autenticação
    protected $driver;
    /// Usuário autenticado na sessão
    protected $user;

    /**
     * \brief Construtor da classe
     * \param [in] (\FW\Security\AuthDriverInterface) $driver
     */
    public function __construct(AuthDriverInterface $driver = null) 
    {
        $this->setDriver($driver);
        
        $this->wakeupSession();
        $this->rememberSession();
    }
    
    /**
     * \brief Restaurar sessão de usuário que já esteja autenticação na aplicação
     */
    protected function wakeupSession()
    {
        $identitySessionData = Session::get( $this->driver->getIdentitySessionKey() );
        
        if ($identitySessionData !== null) {
            $this->user = $this->driver->getDefaultIdentity();
            
            $this->user->fillFromSession($identitySessionData);
        }
    }
    
    /**
     * \brief Restaurar sessão de usuário que sessão já esteja expirado, <commit_msg>Correção de bug com sessão vazia que ocorre em usuários do Safari no MacOS.<commit_after><?php
/**	\file
 *	FVAL PHP Framework for Web Applications
 *  
 *  \copyright  Copyright (c) 2007-2015 FVAL Consultoria e Informática Ltda.\n
 *  \copyright  Copyright (c) 2007-2015 <NAME>\n
 *	\copyright  Copyright (c) 2014 <NAME>
 *  
 *	\brief      Gerenciador de autenticação de identidades
 *	\warning    Este arquivo é parte integrante do framework e não pode ser omitido
 *	\version    0.2
 *  \author     <NAME> - <EMAIL>
 *	\ingroup    framework
 */
namespace FW\Security;

use FW\Session;
use FW\Cookie;

/**
 * \brief		Gerenciador de autenticação de identidades
 */
class Authentication 
{
    /// Driver de autenticação
    protected $driver;
    /// Usuário autenticado na sessão
    protected $user;

    /**
     * \brief Construtor da classe
     * \param [in] (\FW\Security\AuthDriverInterface) $driver
     */
    public function __construct(AuthDriverInterface $driver = null) 
    {
        $this->setDriver($driver);
        
        $this->wakeupSession();
        $this->rememberSession();
    }
    
    /**
     * \brief Restaurar sessão de usuário que já esteja autenticação na aplicação
     */
    protected function wakeupSession()
    {
        $identitySessionData = Session::get( $this->driver->getIdentitySessionKey() );
        
        if (is_array($identitySessionData)) {
            $this->user = $this->driver->getDefaultIdentity();
            
            $this->user->fillFromSession($identitySessionData);
        }
    }
    
    /**
     * \brief Restaurar sessão de usuário que sessão já esteja expirado, 
{'fraction_non_alphanumeric': 0.1099312929419113, 'fraction_numerical': 0.013741411617738912, 'mean_word_length': 2.5005464480874315, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 30, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7051102', 'n_tokens_mistral': 1037, 'n_tokens_neox': 984, 'n_words': 267}