마지막 27강에 세션 저장에 대해 궁금한점이 있습니다.
326
2 asked
Answer 1
0
첫번째, 두번째 질문에 답변입니다.
JWT를 사용하는 이유는 세션을 사용하지 않기 위해서죠? 즉 인증을 할 때 하나의 서버에 종속되지 않기 위해서에요. 서버가 여러대가 되면 서버 마다 세션을 가지고 있기 때문에 JWT로 토큰 검증을 통해 인증을 합니다.
JWT로 토큰 검증을 하여 인증을 하게 되면, 토큰 내부에 개인 primary key가 있기 때문에 그것을 유저를 구분하고 권한처리가 가능하나, 단점이 있습니다.
/user, /board 등 특정 주소로 요청이 올 때 그 주소에 대한 권한이 있는지를 매번 JWTAuthorization에서 체크해야 한다는 것입니다. 이게 생각보다 엄청 귀찮아요.
그래서 그냥 세션에 집어 넣어버리면, 시큐리티가 특정 주소마다 권한 처리를 해줄것이기 때문에 그냥 시큐리티에게 맡겨버리는 겁니다. 그럼 편하자나요 ㅎ 안써도 되요. 대신 안쓰면 직접 주소마다 권한 처리를 해줘야 해요.
아니면 스프링 인터셉터를 써야해요.
권한 요청이 있을 때마다 세션에 저장하는 이유도 그 시점에만 잠시 세션에 임시로 저장해두고 그걸 통해 시큐리티로 권한처리를 하고, 요청이 올 때마다 서버가 4대라면 어느 서버로 갈지 모르기 때문에 특정 서버에 종속시키지 않기 위해서에요. 이해가 가시나요?
0
아 서버가 여러대면 해당 토큰유저에대한 세션정보가 안남아있는 서버에 접근할수도 있으니 그때그때 생성하는것이군요. 세션을 쓰는 이유와 왜 그때그때 세션에 저장하는지는 알겠습니다
그렇다면 이미 토큰에 맞는 권한을 세션에 저장한 서버에 접근해서 권한처리를 할때는 시큐리티세션홀더.set세션 부분에서 내부와 principalDetail과 비교해서 존재하면 따로 저장을 안하게되는것인가요?
0
넵 알겠습니다!ㅎㅎ
다시 한번 좋은 강의와 답변 감사합니다!
정말 기초부터 세션,쿠키와의 차이점, 중간중간 네트워크 설명까지 뭐하나 빠질게 없는 정말 좋은 강의였습니다!!
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

