Spring boot (Cookie/Session)

이민우·2023년 6월 23일
0

오늘은 인증과 인가에대해 알아보고 Spring boot에서 Cookie와 Session을 사용해 보겠다.

Authentication(인증)
Authentication은 인증으로 해당 유저가 실제 유저인지 인증하는 개념이다.
쉽게말해 로그인한 유저의 데이터가 데이터베이스에 저장되어 있는지 확인하고 있다면 해당 서비스를 이용하는 유저가 맞다고 확인하는 절자이다.

Authorization(인가)
Authorization은 인가로 인증을 통해 로그인을 한 유저가 서비스 중 해당 서비스를 이용할 수 있는 사용자인가를 알아보는 것이다.
관리자만이 사용하는 루트를 일반사용자가 들어가게 된다면 권환을 확인하고 관리자가 아님을 판단해 해당루트의 진입을 막는것이다.

이번 글에선 Cookie와 Seesion을 생성하고 생성한 데이터를 확인하는 것을 Spring boot로 알아보겠다.

Cookie
Cookie란 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일이다.

위의 예시에서 노랑색으로 표시된 루트로 확인해 볼 수 있다.
해당 루트로 들어가면 예시와 같이 이름, 값, 경로, 만료기한 등을 알 수 있다.

이름 은 쿠키를 구별하는 값으로 여러개의 쿠기들 중 하나의 쿠키를 선택하거나 할때 사용할 수 있다.

값은 쿠키의 값으로 해당 쿠키가 가지고있는 값이다 인증이 필요할때 이러한 값을 활용한다.

경로는 쿠키가 사용되는 경로이다.

만료기한은 쿠키가 만료되는 시간 즉 없어지는 시간을 설정하는 것이다.

다음으로 쿠키를 생성하는 코드를 확인해 보자.

코드를 살펴보면 Cookie()를 이용하는데 인자로 두가지의 데이터를 받는다 첫번째로 쿠키의 이름, 두번째로 쿠키의 값이다.
두가지의 인자를 받고 생성한 쿠키에 사용될 경로와 만료기한을 설정한다.
마지막으로 Response 객체에 추가하는 것으로 쿠키를 생성할 수 있다.

다음으로 생성한 쿠키를 웹에서 확인해 보자.

위와 같이 Comtroller를 사용해 지정되 url에 쿠키를 생성 하고 확인 할 수 있다.
addCookie() 와같이 앞서 생성한 메소드에 인자로 쿠키의 값을 넣어준다.

위와 같이 쿠키가 생성됨을 확인 할 수 있다.

마지막으로 쿠키의 값을 확인해보자.

Controller에서 인자를 @CookieValue() 형태로 받으면 CookieValue() 의 인자에 해당하는 쿠키의 값을 확인 할 수 있다.

위와 같이 쿠키에 저장된 값을 웹에서 확인 할 수 있다.

Session
Session이란 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용한다.
서버에서 클라이언트 별로 유일무이한 '세션 ID'를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장합니다.
서버에서 생성한 '세션 ID'는 클라이언트의 쿠키값으로 저장되어 클라이언트 식별에 사용된다.

다음으로 Session을 생성해보자.

getSession을 사용해 세션이 존재하는지 유무를 판단해 있다면 세션을 반환하고 없다면 세션을 생성 후 반환한다.
setAttribute()로 세션에 저장될 이름과 값을 인자로 주고 정보를 추가한다.

위와같이 세션이 생성된것을 확인 할 수 있다.

다음으로 세션의 값을 웹에서 확인해 보자.

getSeesion을 사용해 세션이 존재하면 반환하고 없다면 null을 생성하게 하는데 세션을 생성하는 것이 아닌 생성된 세션의 값을 확인 하는것이기 때문이다.
getAtttibute()로 저장된 세션의 이름을 인자로 주고 값을 출력한다.

위와같이 세션에 저장된 값을 확인 할 수 있다.

profile
개린이

0개의 댓글