我正在使用linkerD在Java语言中设置一个授权插件。目前,我使用一个Identifier来拦截请求&检查用户是否被授权。(以https://github.com/linkerd/linkerd-examples/tree/master/plugins/header-classifier为例)
如果用户未被授权,则请求不能到达后端服务。在这种情况下,我抛出了一个运行时异常(如果有其他方法阻止请求到达后端,请告诉我)。Linkerd将响应作为502 Bad Gateway发送。Linkerd应该有一种机制,我可以通过它指定我想要发回的HTTP状态代码。
我尝试将responseClassifier与标识符一起使用,但看起来responseClassifier在抛出异常时没有被调用。
发布于 2017-07-20 09:08:24
根据this issue上的评论,目前还不能从标识符插件发回自定义响应代码
这是使用标识符插件接口进行授权的限制。如果您愿意,您可以返回一个UnidentifiedRequest异常,它将返回一个400Bad Request。从长远来看,我们希望添加一个专门用于授权的新插件接口,这将允许对错误响应进行更多控制。
但是linkerd计划在未来的版本中添加better support for authorization plugins。
https://stackoverflow.com/questions/44923339
复制相似问题