인프런 커뮤니티 질문&답변

박주형님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 처리하기 - 세션 직접 만들기

findCookie()메서드 관련 질문입니다.

작성

·

89

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
findCookie() 메서드에서 String cookieName으로

SESSION_COOKIE_NAME = "mySessionId";

위의 상수를 받고있는 상황으로써 모든 사용자의 cookieName은 전부 "mySessionId"이 됩니다.

return Arrays.stream(cookies).filter
        (cookie -> cookie.getName().equals(cookieName)).findAny().orElse(null);

위 코드에서 cookie.getName().equals(cookieName)).findAny() 이 부분을 보게되면 쿠키의 이름과 cookiename이 동일한 것중에서 무작위로 하나를 return하게 됩니다.

앞서 cookieName은 전부 mySessionId인 것을 알 수 있습니다. 이럴경우 서로다른 무작위의 사용자가 쿠키를 통해 세션 로그인을 하였을 때

sessionStore.get(sessionCookie.getValue()

위 코드로 member 객체를 특정 짓게 되므로, 반드시 나의 회원 정보를 찾는 것이 아닌 타인의 회원정보를 반환할 수 있는 것이 아닌가 의문이 듭니다.

인턴AI가 아닌 사람이 직접 답해주시길 바랍니다.

답변 1

1

안녕하세요. 박주형님, 공식 서포터즈 David입니다.

사용자별로 세션 ID가 부여된다는 전제하에 아래 답변을 참고해 주세요.

https://www.inflearn.com/community/questions/255129?focusComment=122642

감사합니다.