Springboot(17)
-
Spring Websocket STOMP 통신과 JWT 인증
이 글의 목적Spring websocket , stomp로 기본 채팅서버를 만들고 Spring security와 JWT를 이용해 인증 후 웹, app 모두 같은 채팅방에서 채팅을 하는 기능을 구현한다.웹에서는 ajax를 통해 /api 요청을 해서 화면을 구성한다 (근데 따로 웹 서버 만들기 귀찮아서 그냥 채팅서버에 WebController -> return 단순화면 추가) 앱의 경우 안드로이드스튜디오에서 device manger로 가상 머신으로 실행해야서버 주소(localhost:8080)에 요청할 수 있다. 완성 코드 https://github.com/gks930620/spring_basic/tree/master/spring_chat Spring Websocket 웹 소켓은 ..
2025.06.26 -
Spring security jwt Oauth2 로그인 - 구현(2)
전체코드 : https://github.com/gks930620/spring_securty_all 구현 자체는 JWT access token,refresh token에 Oauth2 몇몇 기능을 추가한 거밖에 없다. 그래서 여기는 전체코드를 전부 설명하는것이 아니라 추가된 내용만 작성하는걸로 하고전체코드는 github를 참고하도록 하자. Custom-oauth2/login/kakao 컨트롤러이 떄 이 url은 permitALL 되어야한다. Oauth2LoginController@Controller@RequestMapping("/custom-oauth2/login")@RequiredArgsConstructorpublic class Oauth2LoginController { private fina..
2025.03.17 -
Spring Security jwt 방식 Oauth2 로그인 - 동작방식 (1)
※전체코드 : https://github.com/gks930620/spring_securty_all https://brilliantdevelop.tistory.com/226에 이어 jwt방식에 oauth2로그인을 적용해보겠다. 백엔드서버인 spring boot를 기준으로 설명한다. 예시는 카카오 로그인이다. 세션/JWT 방식과 Oauth 이해. 세션과 JWT는 사용자 정보를 어디다 저장하느냐의 대한 차이인거고, Oauth는 이 사용자 정보를 어떻게 얻냐에 대한 거다. 전통적인 SSR 방식 : Oauth를 사용하면 인가코드 방식으로 카카오의 사용자정보를 얻고, 이 정보를 세션에 저장 굳이 SSR방식에서 JWT를 사용할 필요는 없다. ..
2025.03.14 -
Spring Security jwt 방식 - access token+ refresh token(2)
전체코드 : https://github.com/gks930620/spring_securty_all https://brilliantdevelop.tistory.com/225에 이어 refresh token을 추가해토큰재발급과 로그아웃기능을 구현해보자. 설정파일application.ymlspring: datasource: url: jdbc:h2:mem:security driver-class-name: org.h2.Driver username: sa password: jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true ..
2025.03.12 -
Spring Security jwt 방식 - access_token(1)
전체코드 : https://github.com/gks930620/spring_securty_all 프로젝트 세팅https://start.spring.io/ 에서 프로젝트를 생성합니다. 필요한 library는Spring Data JDBC,H2 Database, Spring Data JPA, Spring Web, Thymeleaf,Spring Boot Devtools , Lombok, Spring security 입니다. jwt, dotenv(.env 환경변수 설정) 라이브러리는 buuild.gradle에 직접 추가합니다.implementation 'io.jsonwebtoken:jjwt-api:0.12.3'implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'im..
2025.03.06 -
Spring Security jwt 방식 - jwt 사용이유와 session방식과의 차이 (1)
전체코드 : https://github.com/gks930620/spring_securty_all JWT 를 이용한 토큰인증방식 JWT라는 거는 JSON Web Token의 약자로서 토큰의 하나의 형식 또는 종류라 할 수 있다.토큰인증방식을 꼭 JWT를 쓸 필요는 없지만 JWT가 많이 쓰인다.토큰인증방식은 다음과 같은 방식으로 진행된다. 1. 사용자가 로그인하면 JWT를 발급 2. 이후 요청마다 JWT를 HTTP Header에 포함 (Authorization: Bearer ) 3. 서버는 토큰을 검증하여 사용자를 인증 토큰인증방식이 필요한 이유기존의 세션방식 말고 왜 토큰인증방식이 필요한가? 1. 서버확장성 세션방식은 사용자 수가 많아질수록 서버의 세션 메모리 부담이 증가하고하나의 서버가 세션을 ..
2025.03.05