package pt.estgp.estgweb.web.filters;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.Globals;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
*
* @author Jorge Machado
*/
public class CookieFilter
implements 1.5.0/docs/api/java/util/logging/Filter.html">Filter
{
public static final List
<String
> FILTER_IGNORE_EXTENSIONS = Globals.
FILTER_IGNORE_EXTENSIONS;
public static final List
<String
> FILTER_IGNORE_PREFIXES = Globals.
FILTER_IGNORE_PREFIXES;
public CookieFilter
()
{
}
public void init
(FilterConfig config
)
{
}
/**
*
* @param request The servlet request we are processing
* @param chain The filter chain we are processing
*
* @exception java.io.IOException if an input/output error occurs
* @exception javax.servlet.ServletException if a servlet error occurs
*/
public void doFilter
(ServletRequest request, ServletResponse response, FilterChain chain
)
throws 1.5.0/docs/api/java/io/IOException.html">IOException, ServletException
{
HttpServletRequest hrequest =
(HttpServletRequest
) request
;
if(hrequest.
getServletPath().
startsWith("/wsjson/api"))
{
chain.
doFilter(request,response
);
return;
}
// System.out.println(request.getRemoteAddr() + " access and path:" + hrequest.getRemoteUser() + " " + hrequest.getRequestURL() + " " + ((HttpServletRequest) request).getRequestURI() + " spath " + hrequest.getServletPath() + " queryString " + hrequest.getQueryString() );
1.5.0/docs/api/java/lang/String.html">String relativePath = hrequest.
getServletPath();
if (relativePath ==
null)
relativePath =
"";
if (hrequest.
getPathInfo() !=
null && hrequest.
getPathInfo().
length() > 0
)
{
relativePath += hrequest.
getPathInfo();
}
for (1.5.0/docs/api/java/lang/String.html">String ignore : FILTER_IGNORE_EXTENSIONS
)
{
if (relativePath.
endsWith(ignore
))
{
chain.
doFilter(request, response
);
return;
}
}
for (1.5.0/docs/api/java/lang/String.html">String ignore : FILTER_IGNORE_PREFIXES
)
{
if (relativePath.
startsWith(ignore
))
{
chain.
doFilter(request, response
);
return;
}
}
if(RequestUtils.
existRequester((HttpServletRequest
)request,
(HttpServletResponse
)response
))
{
chain.
doFilter(request, response
);
}
else
{
//ALTERACOES REUNIAO BACO CODIGO 01062011
//System.out.println("AQUIIIII>>>"+((HttpServletRequest)request).getContextPath() + ((HttpServletRequest) request).getServletPath() + "?" +((HttpServletRequest) request).getQueryString());
((HttpServletResponse
)response
).
sendRedirect(((HttpServletRequest
)request
).
getContextPath() +
"/Welcome.do");
//((HttpServletResponse)response).sendRedirect(((HttpServletRequest)request).getContextPath() + ((HttpServletRequest) request).getServletPath() + "?" +((HttpServletRequest) request).getQueryString());
}
}
public void destroy
()
{
// Nothing
}
}