인프런 커뮤니티 질문&답변

yjk9805님의 프로필 이미지

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - 인증과 권한 기능 개요

API gateway에서 user service 라우팅시에 회원가입, 로그인, 그외로 나누는 이유가 궁금합니다

24.07.14 14:35 작성

·

133

·

수정됨

0

routes:
  - id: user-service # 로그인
    uri: lb://USER-SERVICE
    predicates:
      - Path=/user-service/login
      - Method=POST
    filters:
      - RemoveRequestHeader=Cookie
      - RewritePath=/user-service/(?<segment>,*), /$\{segment}

  - id: user-service # 회원가입
    uri: lb://USER-SERVICE
    predicates:
      - Path=/user-service/users
      - Method=POST
    filters:
      - RemoveRequestHeader=Cookie
      - RewritePath=/user-service/(?<segment>,*), /$\{segment}

  - id: user-service # 그 외
    uri: lb://USER-SERVICE  # ???? ??
    predicates:
      - Path=/user-service/**
      - Method=GET
    filters:
      - RemoveRequestHeader=Cookie
      - RewritePath=/user-service/(?<segment>,*), /$\{segment}

/**로만 넘겨도 될거같은데 회원가입, 로그인, 그 외 기능을 나누는 이유가 따로 있을까요 ?

답변 1

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

2024. 07. 15. 07:21

안녕하세요, 이도원입니다.

Routes에 설정 된 내용을 정리해 보면,

POST /user-service/login

POST /user-service/users

GET /user-service/**

위와 같이 다른 종류로 되어 있습니다. POST /user-service/login, POST /user-service/users 에서는 인증에 관련된 Filter를 거치지 않고 실행하기 위해서 설정을 분리하였습니다. 나머지 GET /user-service/** 부분에서는 인증관련 Fitler를 추가하고, 해당 인증을 거치지 않으면 실행되지 않도록 (401 or 403 오류) 적용할 수 있습니다. 올려주신 코드에는 Filter가 적용되어 있지 않은데, 최종코드에는 아래와 같이 Filter를 추가하여 처리하는 부분이 추가되어 있습니다.

        - id: user-service
          uri: lb://USER-SERVICE
          predicates:
            - Path=/user-service/**
            - Method=GET
          filters:
            - RemoveRequestHeader=Cookie
            - RewritePath=/user-service/(?<segment>.*), /$\{segment}
            - AuthorizationHeaderFilter

감사합니다.

yjk9805님의 프로필 이미지

작성한 질문수

질문하기