Bom dia gostaria que me ajudassem a entender como funciona esse Filtro de login.
tenho esse Servlet para o verificar o login:
funciona perfeito e se usuario logado manda pra minha pagina principal.
.
.
.
try
{
UserBean user = new UserBean();
user.setUserName(request.getParameter("un"));
user.setPassword(request.getParameter("pw"));
user = UserDAO.login(user);
if (user.isValid())
{
HttpSession session = request.getSession(true);
session.setAttribute("currentSessionUser",user);
response.sendRedirect("pagina-principal.jsp"); //logged-in page
}
else
response.sendRedirect("invalidLogin.jsp"); //error page
}
.
.
.
o filtro
public class FiltroSeguranca implements Filter{
public void init(FilterConfig config) throws ServletException {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpSession session = ((HttpServletRequest)req).getSession();
UserBean usuario = (UserBean)session.getAttribute("currentSessionUser");
if(usuario == null){
session.setAttribute("msg","Você não está logado no sistema!");
((HttpServletResponse)res).sendRedirect("../LoginPage.jsp");
}else{
chain.doFilter(req, res);
}
}
public void destroy() {
}
}
e no web XML:
<welcome-file-list>
<welcome-file>LoginPage.jsp</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>Filtro Seguranca</filter-name>
<filter-class>br.controle.filtro.FiltroSeguranca</filter-class>
</filter>
<filter-mapping>
<filter-name>Filtro Seguranca</filter-name>
<url-pattern>/*</url-pattern> // ja mudei para /paginas/* ou para *.jsp E nada, voltei as paginas para o local padrao agora.
</filter-mapping>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>br.controle.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
Nao consigo fazer esse filtro funcionar::
Pelo que entendi (me corrijam se eu estiver errado),
abri o browser, digitei o endereco da aplicacao teria q aparecer a tela de login, se login certo, entra pra pagina principal, caso contrario
ele teria que voltar para a tela de login.
alguem ajuda?
Reforco q o erro esta no filtro pois se tiro ele do WebXml, a aplicacao funciona trankila passando pela tela de login, verfica, etc…
quero bloquear de tal forma q o usuario nao entre direto com o endereco… Ex: http://localhost:8080/Controle/cadastro.jsp
quero bloquear isso no navegador…
Estou usando Jstl e nada de JSF, vi q a maioria dos exemplos estao pra JSF…
Nao vou mexer com JSF agora…
estudos…

