본문 바로가기

백업

[Servlet] 로그인 인증시 필터 검사

로그인을 했다면, 브라우져가 닫히기 전까지 세션은 살아있을것이다.

이러한 세션을 확인할 수 있게 필터를 하나 만들어 보겠다.

이 필터는 인터페이스로 구현되며, web.xml에서 servlet위에서 매칭된다.

 

loginPage.html이라는 페이지에서는 아이디와 패스워드를 넣고 로그인 버튼을 누르면 로그인이 된다.

loginProcessServlet 으로 이동이되면 doPost메소드에서 DB작업 하게된다.                                 (여기선 DB생략 가입된상태라 가정)

DB로 확인된 아이디는 세션을통해 저장을 한다. 그 후 mainServlet으로 이동시킨다.

mainServlet에선 로그인 완료 메세지를 띄운다.

**이 경우 로그인 과정을 생략하고 바로 mainServlet주소를 요청을해도 로그인 완료페이지를 띄우게된다.

  >> 해결 : 필터를 거쳐 확인 후 작업을 진행하도록한다.

 

-loginPage.html (간단한 회원가입 폼)

 

-web.xml (필터를 등록하고 서블릿을 등록) 

 

-Filter.java (요청이들어온 해당url을 판별해 인증과정을 거친다.)

 

-loginProcessServlet.java (DB검사 생략.. 로그인된 아이디를 세션에 저장 후 mainServlet으로 이동시킴)

 

-mainServlet.java (로그인이 완료된 사용자에게만 보여줄 페이지)

 

-결과 (정상적인 로그인을 했을경우)

-결과 (로그인 후 브라우저를 종료하지 않고 한번에 main.do로 요청했을때)

-결과 (로그인되지 않은 상태 혹은 로그인 후 브라우저를 닫고 새로운 브라우저에서 main.do로 요청했을때)

>> 로그인페이지로 강제이동

-결과 (로그인에 실패해서 세션에 값이 없을경우)

>> 로그인페이지로 강제이동