Validação de login
Alguém pode me ajudar?
A idéia aqui é validar na classe a existência de uma variável de sessão criada em um servlet
Meu jsp
Minha classe
Erro:
Alguém pode me ajudar?
A idéia aqui é validar na classe a existência de uma variável de sessão criada em um servlet
Meu jsp
<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin" value="${validaAdmin.testaLogin(request)}" />
<c:set var="redireciona" value="${validaAdmin.redireciona(request)}" />
<c:choose>
<c:when test="${admin != null}">
${admin.nome};
</c:when>
<c:otherwise>
$;
</c:otherwise>
</c:choose>
Minha classe
package dao.admin;
import model.Admin;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestaLoginAdmin
{
public Admin testaLogin(HttpServletRequest request) throws ServletException, IOException
{
HttpSession sessao = request.getSession();
Admin admin = (Admin) sessao.getAttribute("admin");
if(admin != null)
{
return admin;
}
return null;
}
public void redireciona(HttpServletResponse response) throws ServletException, IOException
{
response.sendRedirect("index.jsp");
}
}
Erro:
HTTP Status 500 - org.apache.jasper.JasperException: An exception occurred processing JSP page /_global/testaAdmin.jsp at line 5
type Exception report
message org.apache.jasper.JasperException: An exception occurred processing JSP page /_global/testaAdmin.jsp at line 5
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: org.apache.jasper.JasperException: An exception occurred processing JSP page /_global/testaAdmin.jsp at line 5
2: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3:
4: <jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
5: <c:set var="admin" value="${validaAdmin.testaLogin(request)}" />
6: <c:set var="redireciona" value="${validaAdmin.redireciona(request)}" />
7:
8: <c:choose>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:555)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:461)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.apache.jasper.JasperException: An exception occurred processing JSP page /_global/testaAdmin.jsp at line 5
2: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3:
4: <jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
5: <c:set var="admin" value="${validaAdmin.testaLogin(request)}" />
6: <c:set var="redireciona" value="${validaAdmin.redireciona(request)}" />
7:
8: <c:choose>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
org.apache.jsp.admin.principal_jsp._jspService(principal_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.apache.jasper.el.JspELException: /_global/testaAdmin.jsp(5,0) '${validaAdmin.testaLogin(request)}' java.lang.NullPointerException
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:123)
org.apache.jsp._005fglobal.testaAdmin_jsp._jspx_meth_c_005fset_005f0(testaAdmin_jsp.java:161)
org.apache.jsp._005fglobal.testaAdmin_jsp._jspService(testaAdmin_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
org.apache.jsp.admin.principal_jsp._jspService(principal_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NullPointerException
dao.admin.TestaLoginAdmin.testaLogin(TestaLoginAdmin.java:13)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
javax.el.BeanELResolver.invoke(BeanELResolver.java:165)
org.apache.jasper.el.JasperELResolver.invoke(JasperELResolver.java:147)
org.apache.el.parser.AstValue.getValue(AstValue.java:159)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
org.apache.jsp._005fglobal.testaAdmin_jsp._jspx_meth_c_005fset_005f0(testaAdmin_jsp.java:161)
org.apache.jsp._005fglobal.testaAdmin_jsp._jspService(testaAdmin_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
org.apache.jsp.admin.principal_jsp._jspService(principal_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.22 logs.
Apache Tomcat/8.0.22
Alguém pode me ajudar?
Carlos Rocha
Curtidas 0
Respostas
Carlos Rocha
19/07/2015
Pessoal, ainda não consegui resolver essa!
Alguém pode me ajudar?
Alguém pode me ajudar?
GOSTEI 0
Robson Teixeira
19/07/2015
Bom Dia,
Fiz alguns testes e o erro e a forma que você está obtendo a requisição e a resposta na sua JSP, para isso use a variavel pageContext conforme o exemplo abaixo.
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:set var="redireciona" value="${validaAdmin.redireciona(pageContext.response)}" />
E recomendo você utilizar mudar a implementação do seu método redireciona, pois no processo de renderizar a página o método redirecina referenciado é executado e isso já faz sua app ir para a pagina de index e isso impede a exibição do nome do admin
Att
Robson
Fiz alguns testes e o erro e a forma que você está obtendo a requisição e a resposta na sua JSP, para isso use a variavel pageContext conforme o exemplo abaixo.
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:set var="redireciona" value="${validaAdmin.redireciona(pageContext.response)}" />
E recomendo você utilizar mudar a implementação do seu método redireciona, pois no processo de renderizar a página o método redirecina referenciado é executado e isso já faz sua app ir para a pagina de index e isso impede a exibição do nome do admin
Att
Robson
GOSTEI 0
Carlos Rocha
19/07/2015
Pois é. Esse é o problema.
Quando copio uma url que exige a validação e colo no navegador sem passar pelo login, a página abre normalmente!
Se passar pelo login abre e esse script retorna os dados do admim.
Se não passar pelos login, a página abre normalmente e não exibe Null na exibição do admin!
<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:set var="redireciona" value="${validaAdmin.redireciona(pageContext.response)}" />
$
<c:choose>
<c:when test="${admin != null}">
Olá ${admin.nome}
<c:set var="tipo" value="${admin.tipo}" />
<c:choose>
<c:when test="${tipo=='s'}">
<style>#super{display:block;}</style>
<style>#comum{display:none;}</style>
</c:when>
</c:choose>
<c:choose>
<c:when test="${tipo=='c'}">
<style>#super{display:none;}</style>
<style>#comum{display:bloq;}</style>
</c:when>
</c:choose>
</c:when>
<c:otherwise>
$
</c:otherwise>
</c:choose>
Quando copio uma url que exige a validação e colo no navegador sem passar pelo login, a página abre normalmente!
Se passar pelo login abre e esse script retorna os dados do admim.
Se não passar pelos login, a página abre normalmente e não exibe Null na exibição do admin!
GOSTEI 0
Robson Teixeira
19/07/2015
Favor explique melhor o que você quis dizer, pois realmente não entendi o que você digitou agora pouco.
Att
Robson
Att
Robson
GOSTEI 0
Carlos Rocha
19/07/2015
Se eu pegar a url:
imwsaogotardo/admin/principal.jsp
Que tem a validação do arquivo acima, e colar direto no navegador.
Neste caso a validação deveria dizer que o "admin" é null e redirecionar para index.jsp; Mas no caso isso não ocorre esta abrindo a página principal.jsp normalmente
NA VERDADE NEM SEI SE MANTENHO UMA CLASSE PARA VALIDAR O LOGIN IGUAL ESTA AGORA OU SE EU CANCELO ESSA CLASSE E FAÇO A VALIDAÇÃO NO PRÓPRIO JSP DA FORMA ABAIXO:
QUAL A TUA OPINIÃO?
imwsaogotardo/admin/principal.jsp
Que tem a validação do arquivo acima, e colar direto no navegador.
Neste caso a validação deveria dizer que o "admin" é null e redirecionar para index.jsp; Mas no caso isso não ocorre esta abrindo a página principal.jsp normalmente
NA VERDADE NEM SEI SE MANTENHO UMA CLASSE PARA VALIDAR O LOGIN IGUAL ESTA AGORA OU SE EU CANCELO ESSA CLASSE E FAÇO A VALIDAÇÃO NO PRÓPRIO JSP DA FORMA ABAIXO:
QUAL A TUA OPINIÃO?
<%@ page import="model.Admin"%>
<%
HttpSession sessao = request.getSession();
Admin admin = (Admin) sessao.getAttribute("admin");
String tipo = admin.getTipo();
out.println("Olá "+admin.getNome());
sessao.setAttribute("tipoAdmin", tipo);
if (sessao.getAttribute("nomeAdmin") != null)
{
sessao.removeAttribute("nomeAdmin");
}
if (tipo.equals("s"))
{
out.print("<style>#super{display:block;}</style>");
out.print("<style>#comum{display:none;}</style>");
}
else if (tipo.equals("c"))
{
out.print("<style>#super{display:none;}</style>");
out.print("<style>#comum{display:block;}</style>");
}
%>
GOSTEI 0
Carlos Rocha
19/07/2015
Tentei da forma abaixo mas quando admin é null, não imprime nada na tela na linha 9 e nem a função redireciona é executada!
Porque?
Porque?
<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:set var="redireciona" value="${validaAdmin.redireciona(pageContext.response)}" />
$ ===
<c:choose>
<c:when test="${admin != null}">
Olá ${admin.nome}
<c:set var="tipo" value="${admin.tipo}" />
<c:choose>
<c:when test="${tipo=='s'}">
<style>#super{display:block;}</style>
<style>#comum{display:none;}</style>
</c:when>
</c:choose>
<c:choose>
<c:when test="${tipo=='c'}">
<style>#super{display:none;}</style>
<style>#comum{display:bloq;}</style>
</c:when>
</c:choose>
</c:when>
</c:choose>
<c:choose>
<c:when test="${admin == null}">
$
</c:when>
</c:choose>
GOSTEI 0
Carlos Rocha
19/07/2015
Olha, agora entendi o que você quis dizer com:
Mas tenho uma dúvida:
Métodos não deveriam rodar apenas quando fossem chamados?
Nesse caso, o método redireciona não deveria ser chamado na página de testeAdmin.jsp apenas quando a condição do admin fosse nula? Porque ela esta rodando mesmo assim?
Bom. essa é a dúvida.
Agora, veja se a solução que usei é a mais ideal:
classe
jsp
E recomendo você utilizar mudar a implementação do seu método redireciona, pois no processo de renderizar a página o método redirecina referenciado é executado e isso já faz sua app ir para a pagina de index e isso impede a exibição do nome do admin
Mas tenho uma dúvida:
Métodos não deveriam rodar apenas quando fossem chamados?
Nesse caso, o método redireciona não deveria ser chamado na página de testeAdmin.jsp apenas quando a condição do admin fosse nula? Porque ela esta rodando mesmo assim?
Bom. essa é a dúvida.
Agora, veja se a solução que usei é a mais ideal:
classe
package dao.admin;
import model.Admin;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestaLoginAdmin
{
public Admin testaLogin(HttpServletRequest request) throws ServletException, IOException
{
System.out.println(request+" = Request");
HttpSession sessao = request.getSession();
Admin admin = null;
admin = (Admin) sessao.getAttribute("admin");
if(admin != null)
{
return admin;
}
return admin;
}
}
jsp
<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:choose>
<c:when test="${admin != null}">
Olá ${admin.nome}
<c:set var="tipo" value="${admin.tipo}" />
<c:choose>
<c:when test="${tipo=='s'}">
<style>#super{display:block;}</style>
<style>#comum{display:none;}</style>
</c:when>
</c:choose>
<c:choose>
<c:when test="${tipo=='c'}">
<style>#super{display:none;}</style>
<style>#comum{display:bloq;}</style>
</c:when>
</c:choose>
</c:when>
</c:choose>
<c:choose>
<c:when test="${admin == null}">
out.println("<script>location.href="index.jsp";</script>")
</c:when>
</c:choose>
GOSTEI 0
Robson Teixeira
19/07/2015
Boa Tarde,
Primeiro desculpe pelo erro de digitação foi sem querer e recomendo que no lugar do seu out.println seja um link para voltar para a pagina inicial de sua app, onde o usuário vai clicar(Veja o exemplo abaixo) e respondendo a sua dúvida sobre a execução de método você concorda que o método testaLogin é executado antes do container renderizar a página? se concorda o mesmo ocorre com a execução do método redireciona que recebe o response e por isso que pedi para que você mudar a implementação já que depois de executar o método testaLogin o redireciona é executado e automaticamente o container redireciona para a pagina index de sua app.
exemplo
<a href="contextoAPP/index.jsp">Voltar</a>
Att
Robson
Primeiro desculpe pelo erro de digitação foi sem querer e recomendo que no lugar do seu out.println seja um link para voltar para a pagina inicial de sua app, onde o usuário vai clicar(Veja o exemplo abaixo) e respondendo a sua dúvida sobre a execução de método você concorda que o método testaLogin é executado antes do container renderizar a página? se concorda o mesmo ocorre com a execução do método redireciona que recebe o response e por isso que pedi para que você mudar a implementação já que depois de executar o método testaLogin o redireciona é executado e automaticamente o container redireciona para a pagina index de sua app.
exemplo
<a href="contextoAPP/index.jsp">Voltar</a>
Att
Robson
GOSTEI 0
Carlos Rocha
19/07/2015
Então acho que não entendi direito.
Em,
TestaLoginAdmin é uma classe que contem o método testaLogin();
O método em si não deve ser executado até que seja chamado. Certo? Então, o método só está sendo chamado no caso em que o admin é nuill. Se o admin nao for null, o método não é chamado.
Não entendi porque esta rodando.
No meu entender, o simples fato de o método estar escrito dentro da classe, não faz com que ele rode não! faz?
Veja:
Outra coisa, e a dúvida sobre qual forma escolher? Validação no próprio jsp ou criar a classe para isso?
Outra coisa: Como você implementaria então o método redireciona lá na classe? Só consigo fazer daquela forma!
Grato pelo apoio que esta me dando!
Em,
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
TestaLoginAdmin é uma classe que contem o método testaLogin();
O método em si não deve ser executado até que seja chamado. Certo? Então, o método só está sendo chamado no caso em que o admin é nuill. Se o admin nao for null, o método não é chamado.
Não entendi porque esta rodando.
No meu entender, o simples fato de o método estar escrito dentro da classe, não faz com que ele rode não! faz?
Veja:
<c:choose>
<c:when test="${admin != null}">
Olá ${admin.nome}
<c:set var="tipo" value="${admin.tipo}" />
<c:choose>
<c:when test="${tipo=='s'}">
<style>#super{display:block;}</style>
<style>#comum{display:none;}</style>
</c:when>
</c:choose>
<c:choose>
<c:when test="${tipo=='c'}">
<style>#super{display:none;}</style>
<style>#comum{display:bloq;}</style>
</c:when>
</c:choose>
</c:when>
<c:otherwise>
$
</c:otherwise>
</c:choose>
Outra coisa, e a dúvida sobre qual forma escolher? Validação no próprio jsp ou criar a classe para isso?
Outra coisa: Como você implementaria então o método redireciona lá na classe? Só consigo fazer daquela forma!
Grato pelo apoio que esta me dando!
GOSTEI 0
Robson Teixeira
19/07/2015
Boa Tarde,
Observe o codigo abaixo já apresentado.
Quando o container executar a linha 2 o método testaLogin é executado e após sua execução o retorno é armazenado na variavel admin e essa execução é feita antes de renderizar a sua pagina e o mesmo vale para a linha 3 causando o redirecionamento da pagina antes mesmo de exibir o seu conteúdo é isso ocorre independente se o usuário estiver logado ou não.
Quando ao redirecionar eu criaria uma classe com a estrutura abaixo.
e no método redireciona da classe TestaLoginAdmin eu faria da seguinte forma
e na jsp ficaria assim
As alterações que apresentei acima são para que sua app se comporte do jeito que você queria.
Eu particularmente criaria um filtro e esse filtro fica com a responsabilidade de veririficar se o usuario está logado e caso esteja eu deixaria a requisição continuar normalmente e caso não esteja eu redirecionaria a requisição para a pagina inicial da aplicação.
Att
Robson
Observe o codigo abaixo já apresentado.
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:set var="redireciona" value="${validaAdmin.redireciona(pageContext.response)}" />
Quando o container executar a linha 2 o método testaLogin é executado e após sua execução o retorno é armazenado na variavel admin e essa execução é feita antes de renderizar a sua pagina e o mesmo vale para a linha 3 causando o redirecionamento da pagina antes mesmo de exibir o seu conteúdo é isso ocorre independente se o usuário estiver logado ou não.
Quando ao redirecionar eu criaria uma classe com a estrutura abaixo.
public class Redirecionador {
private HttpServletResponse response;
private String pagina;
public Redirecionador(HttpServletResponse response, String pagina) {
this.response = response;
this.pagina = pagina;
}
public void redirecione() throws IOException{
response.sendRedirect(pagina);
}
}
e no método redireciona da classe TestaLoginAdmin eu faria da seguinte forma
public Redirecionador redireciona(HttpServletResponse response) throws ServletException, IOException {
return new Redirecionador(response, "index.jsp");
}
e na jsp ficaria assim
<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin" value="${validaAdmin.testaLogin(pageContext.request)}" />
<c:set var="redirecidor" value="${validaAdmin.redireciona(pageContext.response)}" />
<c:choose>
<c:when test="${admin != null}">
Olá ${admin.nome}
<c:set var="tipo" value="${admin.tipo}" />
<c:choose>
<c:when test="${tipo=='s'}">
<style>#super{display:block;}</style>
<style>#comum{display:none;}</style>
</c:when>
</c:choose>
<c:choose>
<c:when test="${tipo=='c'}">
<style>#super{display:none;}</style>
<style>#comum{display:bloq;}</style>
</c:when>
</c:choose>
</c:when>
<c:otherwise>
${redirecidor.redirecione}
</c:otherwise>
</c:choose>
As alterações que apresentei acima são para que sua app se comporte do jeito que você queria.
Eu particularmente criaria um filtro e esse filtro fica com a responsabilidade de veririficar se o usuario está logado e caso esteja eu deixaria a requisição continuar normalmente e caso não esteja eu redirecionaria a requisição para a pagina inicial da aplicação.
Att
Robson
GOSTEI 0
Carlos Rocha
19/07/2015
Seria algo do tipo:
??
package filtro;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter("/admin/*")
public class AdminFilter implements Filter
{
private static List<String> allowedURIs;
public AdminFilter()
{
// TODO Auto-generated constructor stub
}
public void destroy()
{
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession sessao= req.getSession();
if(
sessao.getAttribute("admin")!= null ||
precisaDireitoAcessoURI(req.getRequestURI()) ||
req.getRequestURI().equals("/imwsaogotardo/admin/") ||
req.getRequestURI().equals("/imwsaogotardo/admin")
)
{
chain.doFilter( request, response );
}
else
{
res.sendRedirect("index.jsp");
}
}
public void init(FilterConfig fConfig) throws ServletException
{
if(allowedURIs == null)
{
allowedURIs = new ArrayList<String>();
allowedURIs.add("/imwsaogotardo/admin/index.jsp");
allowedURIs.add("/imwsaogotardo/admin/retornos/");
}
}
public boolean precisaDireitoAcessoURI(String uriAtual)
{
for (String uri: allowedURIs)
{
if (uriAtual.contains(uri))
return true;
}
return false;
}
}
??
GOSTEI 0
Robson Teixeira
19/07/2015
Bom Dia,
Sim seria algo desse tipo.
Sim seria algo desse tipo.
GOSTEI 0
Carlos Rocha
19/07/2015
Bom, não sei se seria pedir muito mas estou estudando java web pois acabei a faculdade e gostaria de orientação sobre padrão de projeto ou coisa do tipo.
Estou deixando uma cópia do meu projeto com as devidas alterações para download em:
Projeto
http://www.funerariasaopedro.net.br/imwsaogotardo.zip
E gostaria de saber se daria para você passar o olho e me indicar algum erro grosseiro que acha que eu devo mudar!
A ideia é uma página principal e um sistema de fórum de duvidas igual a este mas direcionado tipo uma escola.
Que tem classes e professores e usuários.
Esta aproximadamente 20% concluído. Mas gostaria de eliminar erros de padrão de projeto já desde o inicio.
Estou apanhando muito mas aprendendo muita coisa também!
Esta tudo funcionando. Erros mesmo não tem. Apenas orientação de padrão ou forma mais digamos "profissional" de trabalhar.
Desde já agradeço o apoio!
Estou deixando uma cópia do meu projeto com as devidas alterações para download em:
Projeto
http://www.funerariasaopedro.net.br/imwsaogotardo.zip
E gostaria de saber se daria para você passar o olho e me indicar algum erro grosseiro que acha que eu devo mudar!
A ideia é uma página principal e um sistema de fórum de duvidas igual a este mas direcionado tipo uma escola.
Que tem classes e professores e usuários.
Esta aproximadamente 20% concluído. Mas gostaria de eliminar erros de padrão de projeto já desde o inicio.
Estou apanhando muito mas aprendendo muita coisa também!
Esta tudo funcionando. Erros mesmo não tem. Apenas orientação de padrão ou forma mais digamos "profissional" de trabalhar.
Desde já agradeço o apoio!
GOSTEI 0