WSO2 Microgateway oauth2 可选,当存在自定义标头时

问题描述

当有两个身份验证选项时,我有一个方案要实现,一个是 Oauth2,另一个自定义标头“x-api-key”。如果仅存在 x-api-key,我想在未经授权的情况下将请求传递给后端。这可以使用自定义过滤器来实现吗?

解决方法

目前,我们对此没有任何选择。但是您可以尝试编写包含以下代码的自定义过滤器,并将其放在 Auth 过滤器之前。

  string X_API_HEADER_NAME = "x-api-key";
  string SKIP_ALL_FILTERS = "skip_filters";

  if (request.hasHeader(X_API_HEADER_NAME)) {
        context.attributes[SKIP_ALL_FILTERS] = true;
    }