Ошибка отклика 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:{ ... }
}]
это решит проблему.