Subversion Repositories bacoAlunos

Rev

Rev 1310 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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
    }
}