Como fazer um login simples em jsf?

Estou tentado fazer um login, porem, nao consigo tratar o evento do botao

public String verificaLogin() {  
    if (usuario.equals("lipper")) {  
        if (senha.equals("123456")) {  
            mensagem = "Bem Vindo " + usuario;  
        } else {  
            mensagem = "Senha Inválida";  
        }  
    } else {  
        mensagem = "Usuário " + usuario + " não faz parte do sistema";  
    }  
    return null;  
}  
  
public String getUsuario() {  
    return usuario;  
}  
  
public void setUsuario(String usuario) {  
    this.usuario = usuario;  
}  
  
public String getSenha() {  
    return senha;  
}  
  
public void setSenha(String senha) {  
    this.senha = senha;  
}  
  
public String getMensagem() {  
    return mensagem;  
}  
  
public void setMensagem(String mensagem) {  
    this.mensagem = mensagem;  
}  
<!-- Login -->  
        <pm:view id="login">  
            <pm:header title="Login">  
                <f:facet name="left">  
                    <p:button value="Voltar" icon="back"  
                        onclick="window.history.back()" />  
                </f:facet>  
            </pm:header>  
  
            <pm:content>  
  
                <h:form id="formLogin">  
                    <h1>  
                        <h:outputText id="bemVindo" value="Bem vindo(a) ao sistema." />  
                    </h1>  
                    <h:panelGrid id="gridLoginSenha" columns="2">  
                        <h:outputText id="loginLabel" value="login" />  
                        <h:inputText id="login" value="#{follow.usuario}" />  
  
                        <h:outputText id="senhaLabel" value="Senha:" />  
                        <h:inputSecret id="senha" value="#{follow.senha}" />  
                    </h:panelGrid>  
  
                    <h:commandButton id="botao" value="Entrar"  
                        action="#{follow.verificaLogin}"  
                        onsuccess="window.open('#buttons')" />  
  
                    <h:outputText value="#{follow.mensagem}" />  
  
                </h:form>  
            </pm:content>  
        </pm:view>  
  
  
  
        <!-- Imprimir -->  
        <pm:view id="imprimir">  
            <pm:header title="Impressões">  
                <f:facet name="left">  
                    <p:button value="voltar" icon="back"  
                        onclick="window.history.back()" />  
                </f:facet>  
            </pm:header>  
  
            <pm:content>  
                <h:form id="imprimirForm">  
                    <h3>Você deseja imprimir?</h3>  
  
                    <p:selectManyCheckbox id="impressoes"  
                        value="#{follow.impressoesSelecionadas}" layout="grid" columns="3">  
                        <f:selectItems value="#{follow.impressoes}" />  
                    </p:selectManyCheckbox>  
                    <p:separator />  
                    <h:outputText id="output" value="#{follow.impressoes}" />  
  
                    <p:commandButton value="Imprimir" icon="refresh" update="@form"  
                        actionListener="#{follow.imprimir}" />  
                    <p:dataList id="historico1" rows="10" paginator="true"  
                        value="#{follow.historico}" var="hist" style="margin-top:1em;">  
                                #{hist}  
                                <f:attribute name="paginador"  
                            value="Ver histórico anterior" />  
                    </p:dataList>  
                </h:form>  
            </pm:content>  
  
        </pm:view>

Minha duvida eh a seguinte, gostaria de saber como posso tratar o evento do botao caso fosse confirmado que o usuario tem autorizaçao, assim ele podera ir para outra view, ou seja
se login for sucesso direcionar o usuario para outra view, neste caso a view imprimir.
grato,

você pode criar essa regra de login sucesso e login error no faces-config.xml

exemplo: http://www.mkyong.com/jsf2/jsf-form-action-navigation-rule-example

Bom dia amigo,
Eu na verdade quero fazer algo bem simples, algo do tipo:

public boolean verificaLogin() {    
    if (usuario.equals("lipper")) {
        boolean t = false;
        if (senha.equals("123456")) {    
            mensagem = "Bem Vindo " + usuario;
             t = true;
        } else {    
            mensagem = "Senha Inválida";    
        }    
    } else {    
        mensagem = "Usuário " + usuario + " não faz parte do sistema";    
    }    
    return t;    
} 

E o botão receberia a variavel t caso fosse true ele iria direcionar o usuario para a view imprimir, caso contrario, permaneceria na mesma view. Eu nao sei como tratar esse tipo de evento no botão. O botao seria esse aqui:

<h:commandButton id="botao" value="Entrar"    
                        action="#{follow.verificaLogin}"   /> 

Obrigado!

crie um metodo dessa maneira entao mais facil para voce entender

public String vericaLogin(){ }

ai você retorna a sua página

e no if ja faça de uma vez

[code] if (usuario.getLogin().equals(“lipper”) && usuario.getSenha().equals(“12345”)){
//mensagem
//e o retorno seria a pagina
return “sucesso.xhtml”;

}[/code]

Obrigado,
Foi uma boa solução, porem, nao queria criar outra pagina, pq a aplicação eh bem simples. Queria simplesmente, se caso confere o login e senha chamar a view imprimir.
Obrigado pela ajuda amigo!

nesse caso é só passar a view imprimir vc é qm manda

flw