Classe mudar senha

1 resposta
thifossile

Ai galera como posso fazer uma classe para a mudança de senha (login)??

esses são as coisas que a classe deve fazer:

Este caso de uso é utilizado quando a entidade decide mudar sua senha.

  • A entidade informa login, senha atual, nova senha e confirmação.
  • O sistema valida os dados e grava a nova senha.

se puderem ajudar agradeço!
Devo me passear nesse codigo:

package tecnig.system.server.beans;

import javax.persistence.*;
import tecnig.system.server.*;
import tecnig.system.datastore.*;
import tecnig.system.utils.*;
import tecnig.system.xml.*;

/**
 * Classe (event handler) que implementa o caso de uso de login.
 */
public final class Login {

	/**
	 * Construtor default requerido.
	 */
	public Login() {
	}
	
	/**
	 * Processa o evento de negócio.
	 */
	public BusinessResult execute(BusinessEvent event) {
		try {
			EntityManager em = (EntityManager) ServiceLocator.lookup("EM");
			
			// Extrai dados
			XML data = (XML) event.getData();
			String login = data.getAttribute("login").asString();
			String senha = data.getAttribute("senha").asString();

			// Valida dados
			if (login == null || login.equals("")) {
				throw new ValidationException("Login não informado");
			}
			if (senha == null || senha.equals("")) {
				throw new ValidationException("Senha não informada");
			}
			
			// Persistência
			Entidade entidade = (Entidade) em.createNamedQuery(
				"Entidade.findByLogin")
				.setParameter("login", login)
				.getSingleResult();
			
			// Avalia regras de negócio
			if (! entidade.isAtivado()) {
				throw new RulesetException("Login desativado");
			}
			if (! entidade.getSenha().equals(CryptoUtils.encrypt(senha))) {
				throw new RulesetException("Senha inválida");
			}

			// Persistência
			entidade.setUltimoLogin(TypeUtils.now());
			em.merge(entidade);
			
			// Produz resultado
			XML result = new XML("entidade");
			result.addAttribute("entidadeId", entidade.getEntidadeId());
			result.addAttribute("nome", entidade.getNome());
			result.addAttribute("nomeCompleto", entidade.getNomeCompleto());
			return new BusinessResult(result);
		} catch (Throwable e) {
			throw new BusinessException("Erro na tentativa de login", e);
		}
	}
	
}

1 Resposta

thifossile

Ja consegui galera!!

Criado 24 de junho de 2009
Ultima resposta 24 de jun. de 2009
Respostas 1
Participantes 1