DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Criando uma Aplicação Completa com JavaServer Faces - Aula 11 - Acrescentando Segurança

Nesta vídeo aula colocamos a parte de segurança no login de nossa aplicação.

Título:

Tempo: 00:14:01

Mini-Resumo: Para finalizar esta serie de vídeo aulas, colocamos a parte de segurança no login de nossa aplicação, utilizando conceitos JSF e também uma ajudinha do primo mais velho da especificação, os "filtros e servlets" armazenando assim o estado do login por toda a sessão, e impedindo que a mesma seja burlada.

Metodologia de desenvolvimento da aplicação do exemplo:
A especificação JSF descreve toda uma metodologia de trabalho a ser empregada no desenvolvimento WEB, desde a concepção do aplicativo até a sua manutenção futura.
Este curso foca os fundamentos, os principios e o funcionamento desta tecnologia. A segunda parte do curso desenvolve uma aplicação completa utilizando JSF.
O curso leva em consideração os padrões consagrados pelo mercado, tais como o conceito MVC e o conceito de DAO's - realidade encontrada na maioria das empresas.


Tecnologias Utilizadas: Java SE 6, NetBeans 6.1, Tomcat6 , JavaServer Faces 1.2

Exemplos construídos: Construímos os filtros necessários para adição de segurança , bem como toda a parte JSF necessária para ligar uma pagina de login a uma regra JSF, finalizando assim a nossa serie "Criando uma aplicação completa utilizando JavaServer Faces".

Palavras chaves: netbeans 6.1, tomcat, introdução, java, web, jsf, faces, mvc, aplicação completa, segurança





    5 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Juscelino Gongora
Dyego,

Aproveitando sua paciencia com os novatos, tanto na aplicação completa quanto na introdução ao JSF, quando eu chego na parte de acrescentar a segurança utilizando filtros a página não carrega, fica em branco procurando o site mas não localiza nada, a tela fica totalmente em branco, caso eu digite o endereço do ../login.faces a tela para efetuar login aparece normal.

Obrigado pela atenção

Juscelino
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Olá !

Pode estar ocorrendo alguma exception...

Ou voce esqueceu de colocar o .doFilter no final do codigo do filtro... poderia colar aqui o codigo do seu filtro ?


Valeu a atenção !
[há +1 ano] - Responder
 

Gabriel Cardelli
Obrigado pela aula, por compartilhar seus conhecimentos.
Acabei de terminar o curso e estou muito satisfeito.

Parabéns.
[há +1 ano] - Responder

 

Wilson Carlos Guissoni Cabral
Dyego, valew dmais pelas aulas.

Mas to com mesmo problema do colega ali em baixo, depois que coloquei o filtro não starta mais... pode ajudar?

olha aí o código do AuthFilter.java:

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

package myfirstjsfapp.filter;

import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Wilson
 */
public class AuthFilter implements Filter {

    private static final boolean debug = true;

    // The filter configuration object we are associated with.  If
    // this value is null, this filter instance is not currently
    // configured. 
    private FilterConfig filterConfig = null;

    public AuthFilter() {
    } 

    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse resp = (HttpServletResponse) response;
        String url = req.getRequestURL().toString();

        Object logged = req.getSession().getAttribute("userlogged");

        if (logged == null || ((Boolean)logged).booleanValue() == false) {
            if (!url.contains("login")) {
                resp.sendRedirect("/login.jsp");
            }
        }


        try {
   chain.doFilter(request, response);
}
catch(Throwable t) {
   t.printStackTrace();
}

    }
    
    /**
     * Return the filter configuration object for this filter.
     */
    public FilterConfig getFilterConfig() {
return (this.filterConfig);
    }

    /**
     * Set the filter configuration object for this filter.
     *
     * @param filterConfig The filter configuration object
     */
    public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
    }

    /**
     * Destroy method for this filter 
     */
    public void destroy() { 
    }

    /**
     * Init method for this filter 
     */
    public void init(FilterConfig filterConfig) { 
this.filterConfig = filterConfig;
if (filterConfig != null) {
   if (debug) { 
log("AuthFilter:Initializing filter");
   }
}
    }

    /**
     * Return a String representation of this object.
     */
    @Override
    public String toString() {
if (filterConfig == null) return ("AuthFilter()");
StringBuffer sb = new StringBuffer("AuthFilter(");
sb.append(filterConfig);
sb.append(")");
return (sb.toString());
    }

    private void sendProcessingError(Throwable t, ServletResponse response) {
String stackTrace = getStackTrace(t); 

if(stackTrace != null && !stackTrace.equals("")) {
   try {
response.setContentType("text/html");
PrintStream ps = new PrintStream(response.getOutputStream());
PrintWriter pw = new PrintWriter(ps); 
pw.print("<html>\n<head>\n<title>Error</title>\n</head>\n<body>\n"); //NOI18N
   
// PENDING! Localize this for next official release
pw.print("<h1>The resource did not process correctly</h1>\n<pre>\n"); 
pw.print(stackTrace); 
pw.print("</pre></body>\n</html>"); //NOI18N
pw.close();
ps.close();
response.getOutputStream().close();
   }
   catch(Exception ex) {}
}
else {
   try {
PrintStream ps = new PrintStream(response.getOutputStream());
t.printStackTrace(ps);
ps.close();
response.getOutputStream().close();
   }
   catch(Exception ex) {}
}
    }

    public static String getStackTrace(Throwable t) {
String stackTrace = null;
try {
   StringWriter sw = new StringWriter();
   PrintWriter pw = new PrintWriter(sw);
   t.printStackTrace(pw);
   pw.close();
   sw.close();
   stackTrace = sw.getBuffer().toString();
}
catch(Exception ex) {}
return stackTrace;
    }

    public void log(String msg) {
filterConfig.getServletContext().log(msg); 
    }

}


Desde já, valew pela força!
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Coloque um:


System.out.println(url);

e cole o que esta aparecendo no loop do filtro aqui , por favor :)
[há +1 ano] - Responder
 



Publicidade
Autor
Dyego Souza Do Carmo

Engenheiro da Computação e evangelista da tecnologia Java , a mais de 15 anos especialista no sistema operacional linux. Programador Java a 8 anos sendo especialista em desenvolvimento de aplicações Java EE utilizando objetos distribuidos e Swing. Consultoria em Dúvidas - Http://www.forHelp.Us


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
5   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03