inflearn logo
강의

講義

知識共有

Spring Boot Security & JWT講義

마지막 27강에 세션 저장에 대해 궁금한점이 있습니다.

326

rij

投稿した質問数 2

1

 
이 부분에서 잘 이해가 안가는것이 있어 질문드립니다.
첫번째는, 저 밑줄 친 부분은 이미 정상적으로 jwt토큰 검증이 끝난 케이스인데 저 때 해당 권한처리를 위한 세션을 저장한다고 하면
권한 요청이 필요한 uri에 들어갈때 마다 계속해서 세션을 저장하게 되는것인가요? 예를들어 게시글 작성, 프로필 보기 이런 링크를 탈 때마다
밑줄 친부분이 실행이 될텐데 그렇다면 동일한 user의 권한을 중복되서 저장되는게 아닌가 싶어서 질문드립니다.
 
두번째는,처음에 로그인할때 권한을 세션에 저장하는 것이 아니라 저렇게 권한 요청이 있을때 세션에 권한을 저장하는 형식으로 만드는 이유가 궁금합니다.
 
끝으로, 정말 수업 재밌게 잘들었습니다. 궁금해서 답답했던 부분이 이 강의 하나로 "뻥"하고 해소된 느낌입니다.
좋은 강의 감사합니다!
 

세션 spring Spring Security jwt

回答 1

0

metacoding

첫번째, 두번째 질문에 답변입니다.

 

JWT를 사용하는 이유는 세션을 사용하지 않기 위해서죠? 즉 인증을 할 때 하나의 서버에 종속되지 않기 위해서에요. 서버가 여러대가 되면 서버 마다 세션을 가지고 있기 때문에 JWT로 토큰 검증을 통해 인증을 합니다.

 

JWT로 토큰 검증을 하여 인증을 하게 되면, 토큰 내부에 개인 primary key가 있기 때문에 그것을 유저를 구분하고 권한처리가 가능하나, 단점이 있습니다.

 

/user, /board 등 특정 주소로 요청이 올 때 그 주소에 대한 권한이 있는지를 매번 JWTAuthorization에서 체크해야 한다는 것입니다. 이게 생각보다 엄청 귀찮아요.

 

그래서 그냥 세션에 집어 넣어버리면, 시큐리티가 특정 주소마다 권한 처리를 해줄것이기 때문에 그냥 시큐리티에게 맡겨버리는 겁니다. 그럼 편하자나요 ㅎ 안써도 되요. 대신 안쓰면 직접 주소마다 권한 처리를 해줘야 해요.

아니면 스프링 인터셉터를 써야해요.

 

권한 요청이 있을 때마다 세션에 저장하는 이유도 그 시점에만 잠시 세션에 임시로 저장해두고 그걸 통해 시큐리티로 권한처리를 하고, 요청이 올 때마다 서버가 4대라면 어느 서버로 갈지 모르기 때문에 특정 서버에 종속시키지 않기 위해서에요. 이해가 가시나요? 

 

 

 

0

rij

아 서버가 여러대면 해당 토큰유저에대한 세션정보가 안남아있는 서버에 접근할수도 있으니 그때그때 생성하는것이군요. 세션을 쓰는 이유와 왜 그때그때 세션에 저장하는지는 알겠습니다

그렇다면 이미 토큰에 맞는 권한을 세션에 저장한 서버에 접근해서 권한처리를 할때는 시큐리티세션홀더.set세션 부분에서 내부와 principalDetail과 비교해서 존재하면 따로 저장을 안하게되는것인가요?

0

metacoding

오 이해를 잘하시네요 ㅎㅎ

 

그렇다면 부분은 그렇게 해도 되지만,,, 굳이 그렇게 하면 귀찮으니까 ㅋㅋㅋ 안해요 ㅎ

0

rij

넵 알겠습니다!ㅎㅎ

다시 한번 좋은 강의와 답변 감사합니다!

정말 기초부터 세션,쿠키와의 차이점, 중간중간 네트워크 설명까지 뭐하나 빠질게 없는 정말 좋은 강의였습니다!!

JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?

0

96

1

Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?

0

401

1

13:23 system.out 출력문이 다르게 나옵니다.

0

130

1

수료증 문의

0

226

2

9분대에 질문이 있습니다 !

0

114

1

password 비교를 하지 않았는데 어떻게 인증이 통과된 건가요?

0

321

1

이전 강의 참고하라는 말씀

0

253

1

강의 실습하다가 막히는 분들 참고(2024년8월 기준)

2

1116

2

구글 소셜 로그인 302

0

200

1

오류 문의 _ org.springframework.orm.jpa.JpaSystemException: could not deserialize

1

584

1

[자바] 시큐리티 Config 참고

13

953

1

이론강의

0

280

1

SpringSecurity JWT 로그인 URL 2개 설정하는 방법

0

487

1

2024.06기준) 최근 SecurityConfig 설정 문의

0

921

3

구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.

0

678

2

특정 url필터 거는 방법 이슈

0

422

1

강사님께서 말씀하시는 시큐리티세션이 SecurityContext인가요?

0

278

1

25강 마지막 테스트에서 오류

1

1044

2

jwt를 저장하는 위치에 궁금한 점이 있습니다.

0

298

1

mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데

0

697

1

세션 인증방식이 REST 원칙에 위배되는 건가요?

0

340

1

jwt와 실제데이터의 관계

1

243

1

jwt 와 세션ID의 관계

1

313

1

SecurityConfig에서 세션 설정, 인가 설정

0

421

1