jwt토큰 2

JWT 토큰 라이브러리 java-jwt와 jjwt 간단 비교

경험이 많지 않아 단언할 순 없지만, REST 아키텍처로 웹 서비스를 만들다 보면 대부분 토큰 인증 방식을 스프링 시큐리티에 접목하게 된다. 클라우드 서비스를 이용하는 추세를 보면, 세션 인증 방식보다 서버 분산 등 확장성에 더 좋은 토큰 인증 방식을 선호하게 된다. 서버를 여러대 두거나, 같은 사용자가 서로 다른 도메인 데이터를 요청할 경우 세션 유지를 위한 처리(비용)이 증가하기 때문이다. 그래서 토큰을 통해 사용자의 모든 요청을 확인하는 방식을 적용하는데, 이 때 JWT 토큰을 많이 사용한다. JWT를 학습하다보면, JWT 라이브러리에도 다양한 선택지가 있다는 것을 알 수 있고, 그럼 이제 뭘 선택해야 할지 고민에 빠지게 된다. 이 글은 그 고민의 결과물이다. java-jwt와 jjwt Json W..

개발/Java|Spring 2023.02.09

Spring Security JWT 토큰으로 인증하기

[환경] Java8 SpringBoot 2.7.7 with Gradle Spring Security 5.7.6 세션(Session) 인증 방식 장단점 JSESSIONID는 서버에서 세션(사용자) 정보를 찾는 Key로만 활용한다. 그 자체로는 개인정보가 들어 있지 않지만, 세션하이재킹 공격을 당할 수 있기때문에 절대적으로 안전하지는 않다. 서버에 세션 정보를 저장할 공간이 필요하다. 분산 서버에서는 세션을 공유하기 어렵다. 토큰(Token) 인증 방식 장점) 세션을 관리할 필요가 없어 별도의 서버 저장소가 필요없다. 서버 분산이나 클러스터 환경처럼 확장성에 좋다. 단점) 한 번 제공된 토큰은 회수가 어렵다. 세션은 서버의 세션 정보를 삭제하게 되면 클라이언트 브라우저의 JSESSIONID는 사용할 수 없게..

개발/Java|Spring 2023.02.07
728x90
반응형