1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (186)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (26)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

🌱 SPRING

로그인 체크 필터

2017. 9. 5. 17:10

로그인 체크 필터

.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 {
        
    }
 
}
 
Colored by Color Scripter
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>
Colored by Color Scripter
cs


반응형
저작자표시 비영리 변경금지 (새창열림)

'🌱 SPRING' 카테고리의 다른 글

[SpringCloud] Resilience4j와 Spring Cloud Circuit Breaker  (0) 2021.05.16
[SpringBoot] 컨트롤러, View(JSP) 작성하기  (0) 2020.05.30
[SpringBoot] 스프링 부트 프로젝트 생성  (1) 2020.05.30
@MVC : RequestMapping  (0) 2018.03.29
의존관계 주입(DI, Dependency Injection)  (1) 2017.11.30
    '🌱 SPRING' 카테고리의 다른 글
    • [SpringBoot] 컨트롤러, View(JSP) 작성하기
    • [SpringBoot] 스프링 부트 프로젝트 생성
    • @MVC : RequestMapping
    • 의존관계 주입(DI, Dependency Injection)
    1HOON
    1HOON

    티스토리툴바