[Resolvido] Problema com Zend Auth
Boa tarde,
Tenho o seguinte problema, utilizo o zend auth para autenticar em um servidor ldap, o grande problema é o seguinte, após ele logar ele redireciona para uma controller principal, onde eu testo se esta autenticado, ok funciona corretamente, o problema é que nesta controller eu tenho um menu que redireciona para outras controllers do sistema, que utilizam o mesmo script para testar se esta autenticado, porém nestas da o seguinte erro:
Fatal error: Uncaught exception 'Zend_Controller_Response_Exception' with message 'Cannot send headers; headers already sent in /var/www/NVS/application/controllers/RhController.php, line 93'
se utilizo o codigo de logoff na principal funciona, se comento o codigo de teste nesta ele funciona.
Segue abaixo o código que utilizo para fazer o login:
public function loginAction() {
$auth = Zend_Auth::getInstance();
//Carrega as configurações
$config = new Zend_Config_Ini('../application/configs/application.ini', 'production');
$options = $config->ldap->toArray();
$login = $this->_getParam('TxtUsuario');
$senha = $this->_getParam('TxtSenha');
//Instancia o Adaptador com a conexão LDAP
$adapter = new Zend_Auth_Adapter_Ldap($options, $login, $senha);
//Autentica
$result = $auth->authenticate($adapter);
//Verifica se a autenticação foi válida
if ($result->isValid()) {
$result->getIdentity() === $auth->getIdentity();
$result->getIdentity() == $username;
$this->_redirect('principal');
} else {
//Para imprimir as mensagens de erro se necessário
foreach ($result->getMessages() as $message) {
echo "$message";
}
$this->_redirect('login/erro/usuario/' . $login);
}
}
Segue o código que utilizo para verificar se a sessão é valida na controller (dentro de init):
public function init() {
/* Initialize action controller here */
$this->view->baseUrl = $this->_request->getBaseUrl();
$armazenamento = new Class_Bd();
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$usuario = $auth->getIdentity();
$this->view->usuario = $usuario;
$menu = new Class_Menu($usuario, 1, $armazenamento);
$this->view->menu = $menu->MontaMenus();
} else {
$this->_redirect('login/erro/usuario/' . $login);
}
}
Como chamo em outras controllers uma instancia do zend auth? esta faltando algo na action de login?
Discussão (1)
Carregando comentários...