로그인 체크 필터
.do 요청이 들어왔을 때 세션에 존재하는 로그인 정보를 확인해서 로그인 정보가 없을 때 로그인 페이지로 이동시키는 클래스이다.
클래스 작성 후 web.xml에 필터 등록과 매핑을 해주어야한다.
/join/login.do 는 로그인 페이지의 URI이고, /join/loginCheck.do 는 로그인 검사 페이지이다.
LOGIN_EMPINFO 은 세션영역에 저장된 로그인한 사용자 계정에 대한 정보이다.(VO를 저장시켜두었다.)
LoginCheckFilter 클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package kr.or.gd.filter; import java.io.IOException; 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 kr.or.gd.vo.EmployeeVO; /** * @ClassName LoginCheckFilter.java * @Description 로그인 정보 확인 필터 클래스 * @Modification Information * @author 박** * @since 2017. 9. 5. * @version 1.0 * @see * <pre> * << 개정이력(Modification Information) >> * 수정일 수정자 수정내용 * ------- ------- ------------------- * 2017. 9. 5. 박** 최초작성 및 구현 * </pre> */ public class LoginCheckFilter implements Filter { @Override public void destroy() { System.out.println("LoginCheckFilter is destroyed!!"); } @Override public void doFilter (ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; boolean isRedirect = false; String requestURI = request.getRequestURI(); if( !requestURI.equals("/join/login.do") && !requestURI.equals("/join/loginCheck.do") ){ //요청 URI가 /join/login.do 혹은 /join/loginCheck.do가 아닐 때 EmployeeVO loginEmp = (EmployeeVO) request.getSession().getAttribute("LOGIN_EMPINFO"); if(loginEmp==null){ //로그인한 정보가 없으면 isRedirect = true; } } if(isRedirect == true){ req.getRequestDispatcher("/join/login.do").forward(req, resp); } else { chain.doFilter(req, resp); } } @Override public void init(FilterConfig arg0) throws ServletException { } } | cs |
web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- 로그인 체크 필터 .do 요청마다 로그인 여부 판단 @author 박** @since 2017.09.05 --> <filter> <filter-name>loginCheckFilter</filter-name> <filter-class>kr.or.gd.filter.LoginCheckFilter</filter-class> </filter> <filter-mapping> <filter-name>loginCheckFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> | cs |
반응형
'🌱 SPRING' 카테고리의 다른 글
[SpringCloud] Resilience4j와 Spring Cloud Circuit Breaker (0) | 2021.05.16 |
---|---|
[SpringBoot] 컨트롤러, View(JSP) 작성하기 (0) | 2020.05.30 |
[SpringBoot] 스프링 부트 프로젝트 생성 (0) | 2020.05.30 |
@MVC : RequestMapping (0) | 2018.03.29 |
의존관계 주입(DI, Dependency Injection) (0) | 2017.11.30 |