| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/07/2007 17:02:44
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Boa tarde, pessoal como é criar um filtro para quando o usuário acessar uma página ele deve cai neste filtro para digitar uma senha ? é normal o uso do Filter de Servlet ????? mesmo utilizando JSF ou Struts...
vocês utilizam este filter mesmo ?
[]'s
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/07/2007 17:29:09
|
rockstorm
Virtual Machine Man
![[Avatar]](/images/avatar/69295f5f6bd7d1a08da4919b5bb95bff.png)
Membro desde: 28/09/2004 08:37:10
Mensagens: 522
Localização: SBC
Offline
|
Eu utilizo o Filter para gerar logs de acesso antes mesmo da entrada de login....o filter é a primeira função a ser chamada na aplicação...
Voce deve fazer assim:
no seu web.xml:
tambem no web.xml:
O filtro esta em cima de todas as jsp acessadas..
Segue a classe:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/12/2008 00:25:31
|
fabiobotelhojg@hotmail.co
Entusiasta Java
Membro desde: 01/11/2007 15:12:25
Mensagens: 24
Offline
|
Implementei um filtro, porém todas as vezes que ele chama o doFilter ele cria uma nova sessão, e meu redirecionamento por conta de um time out nunca funciona. Alguém ja passou por isso ?
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import nz.co.fal.ifcs.web.application.Visit;
public class AuthorizationFilter implements Filter {
private FilterConfig config = null;
private ServletContext servletContext = null;
public AuthorizationFilter() {
}
public void init(FilterConfig filterConfig) {
config = filterConfig;
servletContext = config.getServletContext();
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpSession session = httpRequest.getSession(false);
String requestPath = httpRequest.getPathInfo();
Visit visit = (Visit) session.getAttribute(Constants.VISIT_KEY);
/*
* If trying to access a secured paged the user must be logged on and have a current session
* ie the visit object must exist
*/
if (isSessionControlRequiredForThisResource(httpRequest)) {
// is session invalid?
if (isSessionInvalid(httpRequest)) {
session.setAttribute(Constants.ORIGINAL_VIEW_KEY, requestPath);
Utils.log(servletContext, "Session is invalid! redirecting to timeoutpage, redirecting to: " + httpRequest.getContextPath());
System.out.println("Session is invalid! redirecting to timeoutpage, redirecting to: " + httpRequest.getContextPath());
httpResponse.sendRedirect(httpRequest.getContextPath());
return;
}
}
session.removeAttribute(Constants.ORIGINAL_VIEW_KEY);
chain.doFilter(request, response);
}
public void destroy() {
//this.config = null;
}
/*
* session shouldn?t be checked for some pages. For example: for timeout
* page.. Since we?re redirecting to timeout page from this filter, if we
* don?t disable session control for it, filter will again redirect to it
* and this will be result with an infinite loop?
*/
private boolean isSessionControlRequiredForThisResource(
HttpServletRequest httpServletRequest) {
String requestPath = httpServletRequest.getRequestURI();
boolean controlRequired = !org.apache.commons.lang.StringUtils
.contains(requestPath, Constants.LOGIN_VIEW);
return controlRequired;
}
private boolean isSessionInvalid(HttpServletRequest httpServletRequest) {
if(httpServletRequest.getRequestedSessionId() != null && httpServletRequest.isRequestedSessionIdValid() == false) {
return true;
}
return false;
}
}
|
|
|
 |
|
|
|
|