728x90
SPRING에서의 세션(Session) 컨트롤
Spring은 @SessionAttribute 을 지원한다.
** 이 기능은 세션을 생성하지는 않음.
@SessionAttribute(name="loginMember", required = false ) Member loginMember
이미 로그인 된 사용자를 찾을 때는 다음과 같이 사용하면 된다.
@GetMapping("/")
public String homeLogin(
@SessionAttribute(name=SessionConst.LOGIN_MEMBER, required=false) Member loginMember
, Model model ) {
//세션에 회원데이터가 없으면 "로그인되지 않은 home" 으로 이동
if (loginMember == null) {
return "home";
}
//세션이 유지되면 "로그인된 home" 으로 이동
model.addAttribute("member", loginMember);
return "loginHome";
}
but !! 문제점!!
로그인을 처음 시도하면 URL이 다음과 같이 jsessionid 를 포함하고 있는 것을 확인할 수 있다.
http://localhost:8181/;jsessionid-F50011518B21DF62D09F0DF8F83F872
이것은 웹 브라우저가 쿠키를 지원하지 않을 때 쿠키 대신 URL을 통해서 세션을 유지하는 방법이다.
서버입장에서는 웹브라우저가 쿠키를 지원하는지 않는지는 최초에 판단 할 수 없으므로, 쿠키값도 전달하고, URL에 jsessionid도 함께 전달된다.
URL에 jsessionid가 노출되지 않게 하려면?
"application.properties" 파일에 추가
server.servlet.session.tracking-modes=cookie
세션 타임아웃 설정
특정 세션 단위로 시간 설정하기.
"application.properties" 파일
session.setMaxInactiveInterval(1800); //1800초
'mini_project > 회원가입, 로그인 구현하기' 카테고리의 다른 글
[spring] 인터셉터(interceptor) (0) | 2021.12.16 |
---|---|
[servlet] 필터 (filter) 개념 / 흐름 / 예시 (0) | 2021.12.16 |
[servlet] 세션(session)생성 "HttpSession" (0) | 2021.12.14 |
로그인/로그아웃 구현하기_spring boot, jsp, javascript, mybatis 사용 (0) | 2021.06.09 |
회원가입 구현하기_spring boot, jsp, javascript, mybatis 사용 (2) | 2021.06.09 |