Validação de usuario no seam[RESOLVICO]

1 resposta
G

Boa tarde, estou tendo alguns problemas quanto a fazer uma validação de usuario no seam e gostaria da ajuda de vocês, pois estou começando a mecher com seam agora

minha classe authenticator modifiquei da padrao que veio
@Name("authenticator")
@Scope(ScopeType.CONVERSATION)
public class Authenticator extends EntityQuery<Cliente>
{

	private static final long serialVersionUID = 1L;
    
	private Cliente cliente;
	@In(value = "entityManager")
	private EntityManager em;
	
	public Authenticator(){
		cliente = new Cliente();
	}
	
    public boolean authenticate(){
    	cliente= (Cliente) em.createQuery("select cliente from Cliente cliente " +
    			"where cliente.nome = :nome and cliente.cpf = :cpf").
    	setParameter(":nome", cliente.getNome()).setParameter(":cpf",cliente.getCpf())
    	.getSingleResult(); 
    	
    	if(cliente == null){
    		return false;
    	}else{
    		return true;
    	}
    }
    /**
     * 
     * Getter e Setter
     */
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
}

Minha tela de login

<body>
	<f:view>
		<h:form id="authenticator">
			<s:validateAll >
				<h:panelGrid columns="2">
					Nome do cliente : <h:inputText value="#{authenticator.cliente.nome}" id="nome"/><h:message for="nome"/>
					Cpf do cliente : <h:inputText value="#{authenticator.cliente.cpf}" id="cpf"/><h:message for="cpf"/>
				</h:panelGrid>
			</s:validateAll>
			<h:commandButton action="#{authenticator.authenticate}" value="Logar" id="logar"/>
			<s:button view="/cadastroCliente.xhtml" value="Novo cadastro" />
		</h:form>
	</f:view>
</body>

1 Resposta

G

descobri aqui tem que colocar o indentity e o credentials

@Name("authenticator")
@Scope(ScopeType.SESSION)
public class Authenticator{
	private static final long serialVersionUID = 1L;
    
	private Cliente cliente;
	
	@In(value = "entityManager")
	private EntityManager em;
	
	@In
	private Identity identity;
	
	@In
	private Credentials credentials;

	public Authenticator(){
		cliente = new Cliente();
	}
	
	public void validaAutenticacao(){
		
		identity.login();
	}
	
    public boolean authenticate(){
    	cliente= (Cliente) em.createQuery("select cliente from Cliente cliente where cliente.nome = ? and cliente.cpf = ?").
    	setParameter(1, credentials.getUsername()).setParameter(2,cliente.getCpf())
    	.getSingleResult(); 
    	
    	
    	if(cliente == null){
    		return false;
    	}else{
    		setCliente(cliente);
    		return true;
    	}
    }
Criado 23 de novembro de 2010
Ultima resposta 24 de nov. de 2010
Respostas 1
Participantes 1