Este é um post disponível para assinantes MVPVideo: Aplicação Completa Utilizando Hibernate - Aula 10 - Acrescentando Segurança
Nesta vídeo aula você vai estar aprendendo como colocar segurança em sua aplicação utilizando hibernate.
Tempo: 00:14:00
Mini-Resumo: Nesta vídeo aula você vai estar aprendendo como colocar segurança em sua aplicação utilizando hibernate para isso, temos em mente que a segurança é parte integral do desenvolvimento de aplicações web e não pode ser deixada de lado, deixamos claro também como fazer esta segurança e damos alguns macetes de como implementá-la em sua aplicação.
Tecnologias Utilizadas: Java SE 6, NetBeans 6.5, Hibernate 3, JavaServer Faces
Exemplos contruídos: Detalhamos a implementação de um filtro de controle que vai server de filtro para paginas que não tem acesso logado , então redirecionaremos para uma pagina de login que codificamos e apresetamos em tela.
Palavras chaves: netbeans6 hibernate jpa orm entity entidade mapeamento jsf

14 COMENTÁRIOS
Parabens!!!
Sou iniciante em Java, Hibernate, JSF.
Nesta ultima video-aula vc fala em colocar um return para ir do Login para o Menu Principal, mas no video não fica claro onde foi colocado o return. Aguardo sua resposta.
Mais uma vez, parabens pelo seu trabalho
Esta sendo gratificante assistir suas aulas. Obrigado.

Cara é o seguinte, tentei implementar segurança como você explica nessa video aula e aacontece o seguinte fato: eu tenho uma tela de login onde constar o acessar e cadastra, quando implementei a segurança com doFilter o cadastrar não entra e o acessar também não. O código é o seguinte:
No UserFaces:
public String doAutenthicLogin(){
Log.TurnOn();
if(userDAO.isValidLoginAndPassword(login, password)){
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("login", "ok");
Log.info("O usuario "+login+ " efetuou o login");
return "DoLoginSucessful";
}else {
FacesMessage msg = new FacesMessage("Usuário ou senha inválido!");
FacesContext.getCurrentInstance().addMessage("erro", msg);
Log.Warning(msg.toString());
return "DonotLoginSucessful";
}
}
e o doFilter está assim:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
boolean auth = request.getAttribute("login") != null;
HttpServletRequest rq = (HttpServletRequest)request;
HttpServletResponse rp = (HttpServletResponse)response;
if(!auth && !rq.getRequestURL().toString().contains("index.jsp")){
rp.sendRedirect("index.jsp");
}else {
try {
Linha 65 -> chain.doFilter(request, response);
} catch (Throwable t) {
// If an exception is thrown somewhere down the filter chain,
// we still want to execute our after processing, and then
// rethrow the problem after that.
t.printStackTrace();
}
}
}
O erro é o seguinte:
javax.faces.FacesException: Error decode resource data
at org.ajax4jsf.resource.ResourceBuilderImpl.decrypt(ResourceBuilderImpl.java:627)
at org.ajax4jsf.resource.ResourceBuilderImpl.getResourceDataForKey(ResourceBuilderImpl.java:369)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:156)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at br.com.sisjus.filtro.Filtro.doFilter(Filtro.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.util.zip.DataFormatException: incorrect header check
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:255)
at java.util.zip.Inflater.inflate(Inflater.java:273)
at org.ajax4jsf.resource.ResourceBuilderImpl.decrypt(ResourceBuilderImpl.java:621)
... 26 more
javax.servlet.ServletException: org.ajax4jsf.resource.ResourceNotFoundException: Resource not registered : org/richfaces/renderkit/html/scripts/index.jsp
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:154)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at br.com.sisjus.filtro.Filtro.doFilter(Filtro.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: org.ajax4jsf.resource.ResourceNotFoundException: Resource not registered : org/richfaces/renderkit/html/scripts/index.jsp
at org.ajax4jsf.resource.ResourceBuilderImpl.getResource(ResourceBuilderImpl.java:406)
at org.ajax4jsf.resource.ResourceBuilderImpl.getResourceForKey(ResourceBuilderImpl.java:350)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:152)
Poderia me ajudar?
Desde já obrigado.
e conseguir fazer funcionar adicionando
&& !rq.getRequestURL().toString().contains("cadastrousuario.jsp")
Resolvido, Valeu!

Relacionamentos N:M são abordados na aula 7 e 8... quanto 1:1 realmente não abordei devido a não serem muito uteis logo apos a normalização do banco de dados...
Estes dois detalhes são abordados no curso sobre JPA , Desvendando o JPA...
ValeuZ!

Este erro é devido ao Bean não possuir um CONVERSOR JSF para ele , existem algumas aulas que ensinam como configura-lo...
Estamos junto a devmedia editando esta aula para colocar este pedaço no meio !!!!
Enquanto isto não ocorre , vou pedir que veja as aulas sobre conversores JSF na parte "Desvendando o JPA" :)
Curso(s):
Formações:
Space do autor

download

11
0
