ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Session
    Java/Spring 2018. 8. 23. 17:41
    반응형

    Session의 단점


    1. 사용자가 많으면 메모리가 많이 필요하다.

    2. 보안 취약 -> Session ID를 계속 바꿔야한다. -> Session 하이재킹에 위협이 있다.

    3. 분리되있는 서버에서는 Session이 공유가 안된다.


    Server에 VO정보를 전달한다. -> Session ID


    브라우저 Cookie에 Session ID를 저장하고, 서버가 닫히면 삭제 된다.


    재요청시 이전에 사용했던 SessionID를 브라우저 쿠키에서 가져온다.


    Spring Controller는 필요한 객체들을 파라미터를 통해 직접 제공받을 수 있다.


    Session 처리를 위해 HttpSession 객체가 필요할 경우 파라미터를 통해 주입 받는다.


    DispatcherServlet이 필요한 Argument 자리에 Parameter를 전달한다.


    @PostMapping("/member/login")
        public String doMemberLoginAction(@ModelAttribute MemberVO memberVO,
                                            HttpSession session) {
            MemberVO loginMemberVO = this.memberService.readOneMember(memberVO);
            session.setAttribute("_USER_", loginMemberVO);
            
            return "redirect:/board/list";
        }


    session.setAttribute("_USER_", loginMemberVO);


    setArrtibute를 통해 loginMemberVO에 _USER_ Session정보를 넣는다.


    session.getAttribute를 통해 정보를 얻어온다.


    @GetMapping("/board/write") // Spring 4.3부터 사용 가능
        public String viewBoardWritePage( @SessionAttribute(name="_USER_", required=false) MemberVO memberVO ) {
            // session이 없으면 다시 login하게 시키기
            if( memberVO == null ) {
                return "redirect:/member/login";
            }
            
            return "board/write";
        }



    Session 대부분 언더바로 시작해서 언더바로 끝낸다.

    서버재시작시 Session 정보가 날아간다.




    반응형

    'Java > Spring' 카테고리의 다른 글

    Application 예외 처리  (0) 2018.08.24
    File - Upload / Download  (0) 2018.08.23
    Spring - JSTL  (0) 2018.08.22
    Spring - JDBC  (0) 2018.08.21
    Eclipse Error - An error occurred while filtering resources Maven Java EE Configuration Problem  (0) 2018.08.21

    댓글

Designed by Tistory.