Ошибка отклика Express-Gateway после настройки авторизации

Я получаю сообщение об ошибке 404 при попытке установить мой ключ авторизации (key-auth) в заголовке запроса. Я уверен, что с моим ключом нет проблем, потому что если я не установлю его, статус Forbidden вернется.

перед настройкой любых учетных данных:

$ curl http://localhost:8080/ip

вернусь:

{
  "origin": "5.116.28.133"
}

после создания ключа авторизации ключа:

$ curl -H "Authorization: apiKey ${keyId}:${keySecret}" http://localhost:8080/ip

вернусь:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /ip</pre>
</body>
</html>

и это моя конфигурация шлюза:

http:
  port: 8080
admin:
  port: 9876
  hostname: localhost
apiEndpoints:
  api:
    host: localhost
    paths: '/ip'
serviceEndpoints:
  httpbin:
    url: 'https://httpbin.org'
policies:
  - basic-auth
  - cors
  - expression
  - key-auth
  - log
  - oauth2
  - proxy
  - rate-limit
pipelines:
  - name: default
    apiEndpoints:
      - api
    policies:
    - key-auth:
      - proxy:
          - action:
              serviceEndpoint: httpbin 
              changeOrigin: true

Кто-нибудь знает, почему эта проблема происходит?

найти более подробную информацию о Express-Gateway от http://www.express-gateway.io/

2 ответа

Решение

Попробуйте удалить дефис из key-auth под policies: в вашем конфигурационном файле - это сработало для меня. Это должно быть просто keyauth,

Так должно быть key-auth проблема с отступом

- key-auth:
       - proxy:

это должно быть на одном уровне

в основном это массив:

policies: [{
    'key-auth':null
    },{
    proxy:{ ... }   
}]

это решит проблему.

Другие вопросы по тегам