Express Шлюз - запрос прокси с токеном на предъявителя - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь выяснить, как заставить Express шлюз использовать токен носителя Auth в запросе, восходящий к службе api.

Ниже приведена моя конфигурация на данный момент.

http:
  port: 8080
admin:
  port: 9876
  host: localhost
apiEndpoints:
  api:
    host: localhost
    paths:
      - '/truck-api/*'
      - '/car-api/*'
serviceEndpoints:
  truck-service:
    url: 'http://10.0.0.2:5010/api'
  car-service:
    url: 'http://10.0.0.2:5011/api'
policies:
  - basic-auth
  - cors
  - expression
  - key-auth
  - log
  - oauth2
  - proxy
  - rate-limit
  - rewrite
  - request-transformer
pipelines:
  default:
    apiEndpoints:
      - api
    policies:
      - proxy:
          -
            condition:
              name: pathMatch
              pattern: "^/truck-api/(.*)"
            action:
              serviceEndpoint: truck-service
              prependPath: true
              ignorePath: false
              stripPath: true
              changeOrigin: true
          -
            condition:
              name: pathMatch
              pattern: "^/car-api/(.*)"
            action:
              serviceEndpoint: car-service
              prependPath: true
              ignorePath: false
              stripPath: true
              changeOrigin: true

Интерфейс вызывает express шлюз с правильным токеном-носителем аутентификации, однако шлюз express не перенаправляет этот токен-носитель аутентификации в вышестоящую службу.

Advice?

1 Ответ

0 голосов
/ 29 апреля 2020

После некоторых копаний и большого количества проб и ошибок решение было относительно простым, используйте преобразователь запросов.

добавил это в раздел политик:

      - request-transformer:        
        - action:
            headers:
              remove: ['Authorization']
              add: 
                Authorization: "'Bearer ***'"
...