Как установить код статуса HTTP с помощью идентификатора в плагинах linkerd

Я использую linkerD для установки плагина авторизации на Java. В настоящее время я использую идентификатор, чтобы перехватить запрос и проверить, авторизован ли пользователь. (В качестве примера: https://github.com/linkerd/linkerd-examples/tree/master/plugins/header-classifier)

Если пользователь не авторизован, запрос не должен доходить до серверной службы. Я выбрасываю исключение во время выполнения в таких случаях (дайте мне знать, если есть другой способ предотвратить запрос до бэкэнда). Linkerd отправляет ответ как 502 Bad Gateway. У Linkerd должен быть механизм, с помощью которого я могу указать код состояния HTTP, который я хочу отправить обратно.

Я попытался использовать responseClassifier вместе с идентификатором, но похоже, что responseClassifier не вызывается при возникновении исключения.

1 ответ

В настоящее время невозможно отправить обратно пользовательские коды ответов из плагина идентификатора, основываясь на комментариях к этой проблеме:

Это ограничение использования интерфейса плагина идентификатора для авторизации. Если вы предпочитаете, вы можете вернуть исключение UnidentifiedRequest, которое вернет 400 неверных запросов. В долгосрочной перспективе мы хотели бы добавить новый интерфейс плагина специально для авторизации, который позволил бы лучше контролировать ответы на ошибки.

Но linkerd планирует добавить лучшую поддержку плагинов авторизации в будущем выпуске.

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