Acesso a área administrativa

0 respostas
Thiago_A

Olá colegas do Fórum GUJ,

estou desenvolvendo uma aplicação web utilizando JSF 1.2 e Facelets. Estou criando uma sessão administrativa. Para isso tenho uma página login.xhtml que recebe o nome de usuário e senha e que utiliza um bean gerenciado chamado LoginController que verifica a existência desse usuário. Para que a o botão Entrar da página login.xhtml funcione é preciso instanciar um bean chamado de Login. Dá para fazer isso criando um link em uma outra página e esse link chamar a ação novoLogin da classe LoginController. Entretanto, gostaria de que o usuário tentasse entrar na área administrativa chamando a página login.xhtml direto do browser. Sem necessitar de um link. Só que quando tento fazer, é claro, o bean Login não é instanciado. Há como eu fazer isso? Permitir ao usuário que ele acesse a área administrativa direto do browser? Dá para instanciar o bean Login na hora que o usuário digitar o endereço do browser?

Abaixo está o código de login.xhtml, de LoginController e do bean Login.

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    
    <body>
        
        <ui:composition template="template_admin.xhtml">
            
            <ui:define name="titulo">
                Acesso a Área Administrativa
            </ui:define>

            <ui:define name="conteudo">
                <div id="formlogin">
                <fieldset>
                <legend>Acesso a Área Administrativa</legend>
                <table id="tabelalogin">
                    <tr>
                        <td>
                            Nome de usuário:
                        </td>
                        <td>
                            <input type="text" required="true" requiredMessage="O campo 'Nome de usuário' é obrigatório" name="nomeusuario" jsfc="h:inputText" value="#{loginC.login.nome_usuario}" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Senha:
                        </td>
                        <td>
                            <input type="password" required="true" requiredMessage="O campo 'Senha' é obrigatório"  name="nomeusuario" jsfc="h:inputSecret" value="#{loginC.login.senha}" />
                        </td>
                    </tr>
                        <tr>
                            <td>

                            </td>
                        <td>
                            <input type="submit" name="enviar" value="Entrar" jsfc="h:commandButton" action="#{loginC.logar_action}"/>
                        </td>
                    </tr>
                </table>
                <br></br>
                <br></br>
                <h:messages />
                </fieldset>
                </div>
            </ui:define>

        </ui:composition>
        
    </body>
</html>
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package biblioteca.gmf.web.controller;


import biblioteca.gmf.bd.bean.Administradores;
import biblioteca.gmf.bd.bean.Login;
import biblioteca.gmf.bd.dao.imp.AdministradoresDaoImp;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author thiagoa
 */
public class LoginController {

    private Login login;

      public String novoLogin()
    {
        this.login = new Login();

        return "login";
    }

   public Login getLogin() {
        return login;
    }

    public void setLogin(Login login) {
        this.login = login;
    }

     public String logar_action() throws Exception
    {
         try
        {
            AdministradoresDaoImp dao = new AdministradoresDaoImp();

            if(dao.VerificarUsuarioSenha(login.getNome_usuario(), login.getSenha()) == true)
            {
                FacesContext fc = FacesContext.getCurrentInstance();
                HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);

                //cria uma sessão contendo o nome de usuario chamada logado
                session.setAttribute("logado", login.getNome_usuario());

                //caso a sessão msg esteja com valor, a remove
                if(session.getAttribute("msg") != null)
                {
                    session.removeAttribute("msg");
                }

                return "logado";
                
            }
        }
        catch(Exception ex)
        {
           //error("Login ou senha inválidos");
        }

        return null;
         
    }

     public String logout_action()
     {
         FacesContext fc = FacesContext.getCurrentInstance();
         HttpSession session = (HttpSession)fc.getExternalContext().getSession(false);

         //expira a sessão
         session.invalidate();

         return "logout";
         
     }

}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package biblioteca.gmf.bd.bean;

/**
 *
 * @author thiagoa
 */
public class Login {

    private String nome_usuario;
    private String senha;

    public Login ()
    {
        
    }
    
    public String getNome_usuario() {
        return nome_usuario;
    }

    public void setNome_usuario(String nome_usuario) {
        this.nome_usuario = nome_usuario;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    

}
Criado 10 de dezembro de 2010
Respostas 0
Participantes 1