2016-04-21 4 views
0

Фильтрация, наложенная на URL-адрес, но когда ожидаемый URL-адрес встретился в этом случае, я получаю эту ошибку.Реализация WebFilter, получающего ошибки: многократный рекурсивный вызов localhost

Ошибка: не удалось очистить временное хранилище. Было определено, что определенные файлы небезопасны для доступа в веб-приложении или слишком много вызовов выполняется в файловых ресурсах. SecurityError

Code snap: 
@WebFilter(urlPatterns = {"/profile"}, description = "Session Checker Filter") 
public class SessionCheckerFilter implements Filter { 
    private FilterConfig config = null; 
    static int i =0; 
    public void init(FilterConfig config) throws ServletException { 
     this.config = config; 
     config.getServletContext().log("Initializing SessionCheckerFilter"); 
    } 

    public void doFilter(ServletRequest req, ServletResponse res, 
         FilterChain chain) 
      throws ServletException, IOException { 

     HttpServletRequest request = (HttpServletRequest) req; 
     HttpServletResponse response = (HttpServletResponse) res; 

     // Check to see if user's session attribute contains an attribute 
     // named user_id. If the attribute is not exists redirect 
     // user to the login page. 
     // 
     if (request.getSession().getAttribute("username") == null) { 

      System.out.println(++i); 
      response.sendRedirect(request.getContextPath() + "/"); 
     } 
     else 
      response.sendRedirect(request.getContextPath() + "/profile"); 

    } 
    public void destroy() { 
     config.getServletContext().log("Destroying SessionCheckerFilter"); 
    } 
} 
+0

@BalusC Эта проблема немного различна. После аутентификации из git outh api я перенаправляю пользователя на этот URL. В этом случае я получаю эту ошибку. Я пытался отлаживать, но вызов не подходит для фильтрации. – nand

+0

Я рекомендую исправить вопрос, чтобы удалить или уточнить/объяснить «очевидные ошибки стартера». Код в его текущей форме имеет ошибку, на которую был дан ответ в дубликате, но если фильтр на первом месте не вызывается, то вы действительно не столкнетесь с этой ошибкой. – BalusC

ответ

0

Эта проблема решена после внесения двух изменений.

1. My local server running on port 8090 and and in redirect URL i have defined port is 8080. I have to make it same port. 

2. In redirect URL i have defined xx.com other than localhost so in /etc/hosts i have to define xx.com other than localhost.