src/main/java/pt/ipv/qualifica/myclinic/beans/LoginManagedBean.java
/**
	 * Recebe as credenciais passadas pelo formulario
	 * verifica as mesmas e se temos correspondencia na base de dados
	 * Codifica a senha com o algoritmo SHA-256
	 * @return null invalidas, caso contrario o caminho da area de trabalho
	 * @throws NoSuchAlgorithmException
	 */
Recebe as credenciais passadas pelo formulario
verifica as mesmas e se temos correspondencia na base de dados
Codifica a senha com o algoritmo SHA-256
@return null invalidas, caso contrario o caminho da area de trabalho
@throws NoSuchAlgorithmException
Recebe as credenciais passadas pelo formulario verifica as mesmas e se temos correspondencia na base de dados Codifica a senha com o algoritmo SHA - 256 @return null invalidas caso contrario o caminho da area de trabalho @throws NoSuchAlgorithmException
public String envia() throws NoSuchAlgorithmException {
        if(StringUtils.isEmpty(utilizador.getNomeUtilizador()) || StringUtils.isBlank(utilizador.getNomeUtilizador())) {
        	Uteis.Mensagem("Favor informar o utilizador!");
        	return null;
        }
        if(StringUtils.isEmpty(utilizador.getSenha()) || StringUtils.isBlank(utilizador.getSenha())) {
        	Uteis.Mensagem("Favor informar a palavra-passe!");
        	return null;
        }
        String senhaHash = getSHA(utilizador.getSenha());
		utilizador = utilizadorDAO.getUtilizador(utilizador.getNomeUtilizador(), senhaHash);
	    if (utilizador == null) {
	    	utilizador = new Utilizador();
	    	Uteis.MensagemErro("Utilizador não encontrado! Erro no Login!");
	    	return null;
	    }
	    Instant instant = Instant.from(LocalDate.now().atStartOfDay(ZoneId.of("GMT")));
	    utilizador.setUltimoAcesso(Date.from(instant));
	    utilizadorDAO.regista(utilizador);
    	FacesContext facesContext = FacesContext.getCurrentInstance();
    	facesContext.getExternalContext().getSessionMap().put("utilizadorAutenticado", utilizador);
    	ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
    	try {
    	    ec.redirect(ec.getRequestContextPath() + "/main");
    	} catch (IOException e) {
    	    e.printStackTrace();
    	}
    	return "/main";
	}
public String envia ( ) throws NoSuchAlgorithmException { if ( StringUtils . isEmpty ( utilizador . getNomeUtilizador ( ) ) || StringUtils . isBlank ( utilizador . getNomeUtilizador ( ) ) ) { Uteis . Mensagem ( "Favor informar o utilizador!" ) ; return null ; } if ( StringUtils . isEmpty ( utilizador . getSenha ( ) ) || StringUtils . isBlank ( utilizador . getSenha ( ) ) ) { Uteis . Mensagem ( "Favor informar a palavra-passe!" ) ; return null ; } String senhaHash = getSHA ( utilizador . getSenha ( ) ) ; utilizador = utilizadorDAO . getUtilizador ( utilizador . getNomeUtilizador ( ) , senhaHash ) ; if ( utilizador == null ) { utilizador = new Utilizador ( ) ; Uteis . MensagemErro ( "Utilizador não encontrado! Erro no Login!") ; return null ; } Instant instant = Instant . from ( LocalDate . now ( ) . atStartOfDay ( ZoneId . of ( "GMT" ) ) ) ; utilizador . setUltimoAcesso ( Date . from ( instant ) ) ; utilizadorDAO . regista ( utilizador ) ; FacesContext facesContext = FacesContext . getCurrentInstance ( ) ; facesContext . getExternalContext ( ) . getSessionMap ( ) . put ( "utilizadorAutenticado" , utilizador ) ; ExternalContext ec = FacesContext . getCurrentInstance ( ) . getExternalContext ( ) ; try { ec . redirect ( ec . getRequestContextPath ( ) + "/main" ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } return "/main" ; }
Recebe as credenciais passadas pelo formulario
 verifica as mesmas e se temos correspondencia na base de dados
 Codifica a senha com o algoritmo SHA-256
 @return null invalidas, caso contrario o caminho da area de trabalho
 @throws NoSuchAlgorithmException
Recebe as credenciais passadas pelo formulario verifica as mesmas e se temos correspondencia na base de dados Codifica a senha com o algoritmo SHA - 256 @return null invalidas caso contrario o caminho da area de trabalho @throws NoSuchAlgorithmException
// regista a data do acesso //FacesContext.getCurrentInstance().getExternalContext().dispatch("teste.html");