티스토리 뷰

자바/MSA

Gateway를 이용한 인증

UroJem 2024. 1. 2. 00:48

인증서버에서 발급된 토큰과 사용자ID를 가지고 gateway server에서 검증을 진행한 후 검증 통과시 마이크로 서비스를 진행하고 실패시 에러 메세지를 반환하는 로직 구현

 

 

gateway server에 build.gradle 에 필요한 의존성 추가

 

 

domain 패키지 추가하여 authentication-server에 Account 도메인 복사하여 붙여넣어준다.

 

repository 패키지 추가하여 AccountRepository 인터페이스를 추가한다.

existsByAccountIdAndToken 메서드는 account 테이블에 사용자 ID와 token 값으로 데이터가 존재하는지 검색하기 위해 사용한다.

 

service 패키지 추가하여 AccountService 클래스를 추가한다.

 

gateway server에 토큰을 체크하는 filter를 추가한다.

filter 메서드는 클라이언트가 요청을 보냈을 때 request와 response를 다음 filter 또는 컨트롤러나 마이크로서비스와 같이 다음 step으로 데이터를 전달하기 위한 메서드이다.

메서드 내부에 request.getHeaders().get("token") 코드는 마이크로서비스를 통해 물품등록할 때 header에 token을 넣어서 전송한다.

header의 key 값이 "token"이고 value에는 JWT 값이 전달된다.

header에서 "token" key값을 get 해오면 요청시 보낸 JWT 값을 가져올 수 있다.

가져온 토큰값을 검증하여 인증 실패시 에러를 반환하고 성공시 원래 진행되는 다음 로직으로 넘어간다.

 

errorResponse 메서드는 Gson 라이브러리를 통해 Map에 담은 에러 결과에 대한 객체를 json으로 변환해서 response 데이터로 응답을 전달한다.

 

 

config-server에 gateway-server-local.yml 설정파일에서 jpa 관련 datasource 설정파일을 import 한다.

 

config-server 시작

eureka-server 시작

gateway-server 시작

item-service 시작

authentication-server 시작

 

 

회원등록 진행

 

회원토큰요청하여 토큰값을 복사한다.

 

 

물품등록 Header값에 토큰과 사용자ID 값을 세팅하고 넘겨주면 성공한다.

 

사용자ID나 토큰값이 다르면 에러메세지를 응답한다.

 

 

https://www.inflearn.com/course/java-msa-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%A4%EC%8A%B5/dashboard

'자바 > MSA' 카테고리의 다른 글

JUnit으로 간단한 단위테스트 개발  (0) 2024.01.03
Microservice로 사용자 ID 전달  (0) 2024.01.02
JWT를 활용한 인증키 발급  (0) 2023.12.31
Gateway Logging 구현  (0) 2023.12.21
SpringCloud Gateway 연동  (0) 2023.12.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함