TEST1&&&&&&&&&&


연습노트  2019. 4. 13. 01:05

TEST

function abc(){
    console.log("hello world");
}
controller.filter.WebFilter
package controller.filter;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
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;

public class WebFilter implements Filter {

  private List<String> passUrl = null;
  private String contextPath;

  @Override
  public void destroy() {
    // TODO Auto-generated method stub

  }

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
    // TODO Auto-generated method stub
    // 웹페이지의 root페이지의 url를 취득한다.
    contextPath = filterConfig.getServletContext().getContextPath();
    passUrl = new ArrayList<String>();
    // web.xml에서 설정했던 parameter를 가져와서 설정한다.
    String[] ignoredPaths = filterConfig.getInitParameter("passPage").split(",");
    for (String ignoredPath : ignoredPaths) {
      passUrl.add(contextPath + ignoredPath);
    }
  }

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;
    HttpSession session = req.getSession();
    //User 세션 값이 있으면 통과!
    if (session.getAttribute("USER") != null) {
      chain.doFilter(req, res);
      return;
    }
    // url를 가져와서 passUrl에 있는 경로면 통과
    String url = req.getRequestURI();
    for (String buf : passUrl) {
      if (buf.equals(url)) {
        chain.doFilter(req, res);
        return;
      }
    }
    // User 세션도 없고 passUrl이면 에러를 발생한다.
    res.setStatus(403);
    res.sendRedirect(contextPath + "/error.html");
  }
}
test&&&&&&test

'연습노트' 카테고리의 다른 글

TTTT&&&&&TTTT  (0) 2019.04.11
[연습노트] 블로그 테스트 포스트  (3) 2016.03.18