티스토리 뷰

dev/spring boot + intelliJ

session

dev_0hoon 2023. 6. 6. 11:20
//@GetMapping("/")
    public String homeLoginV03(Model model, HttpServletRequest request){

        HttpSession session = request.getSession(false);
        if(session != null){
            return "home";
        }

        Member member = (Member)session.getAttribute(SessionConst.LOGIN_MEMBER);

        if(member == null){
            return "home";
        }

        model.addAttribute("member",member);

        return "homelogin";
    }

    @GetMapping("/")
    public String homeLoginV03Spring(@SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false)Member member, Model model, HttpServletRequest request){

        //아래 코드는 파라미터로 대체 될 수 있다.
        /*
        HttpSession session = request.getSession(false);
        if(session != null){
            return "home";
        }

        Member member = (Member)session.getAttribute(SessionConst.LOGIN_MEMBER);
        */


        if(member == null){
            return "home";
        }

        model.addAttribute("member",member);

        return "homelogin";
    }

 

 

TrackingModes
로그인을 처음 시도하면 URL이 다음과 같이 jsessionid 를 포함하고 있는 것을 확인할 수 있다.

  http://localhost:8080/;jsessionid=F59911518B921DF62D09F0DF8F83F872

이것은 웹 브라우저가 쿠키를 지원하지 않을 때 쿠키 대신 URL을 통해서 세션을 유지하는 방법이다. 이 방법을 사용하려면 URL에 이 값을 계속 포함해서 전달해야 한다. 타임리프 같은 템플릿은 엔진을 통해서 링크를 걸면 jsessionid URL에 자동으로 포함해준다. 서버 입장에서 웹 브라우저가 쿠키를 지원하는지 하지 않는지 최초에는 판단하지 못하므로, 쿠키 값도 전달하고, URLjsessionid 도 함께 전달한다.

URL 전달 방식을 끄고 항상 쿠키를 통해서만 세션을 유지하고 싶으면 다음 옵션을 넣어주면 된다. 이렇게 하면 URLjsessionid 가 노출되지 않는다.

application.properties
  server.servlet.session.tracking-modes=cookie

'dev > spring boot + intelliJ' 카테고리의 다른 글

필터와 인터셉터  (0) 2023.06.06
session timeout  (0) 2023.06.06
Cookie를 이용한 로그인 (1)  (0) 2023.05.27
steam() filter() 람다식 사용  (0) 2023.05.23
bean validation groups 사용 (등록과 수정이 다를 때에)  (0) 2023.05.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
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
글 보관함