Anypoint 平台设计中心 RAML client_id 未被强制执行

Anypoint Platform Design Center RAML client_id not being enforced

当我在模拟服务中尝试此 RAML 时,即使我不包含 client_id 和 client_secret,我也会收到 200 成功响应。那是正常的吗?如果我将 headers 留空,我是否应该收到 401 响应,因为我已经将它们定义为必需的?

#%RAML 1.0
title: Test

description: testing cloudhub

traits:
  client-id-required:
    headers:
      client_id:
        type: string
        required: true
      client_secret:
        type: string
        required: true
    responses:
      401:
        description: Unauthorized or invalid client application credentials
      500:
        description: Bad response from authorization server, or WSDL SOAP Fault error

/something:
  is: [client-id-required]
  get:
    responses:
      200:
        body:
          application/json:
            example:
              {
                "hello" : "goodbye"
                  }

模拟服务应该validate the missing headers。目前尚不清楚为什么不是。但我看不出有任何理由让它以 401 响应。它是在模拟响应,而不是尝试进行身份验证。毕竟它并没有真正实现 API 。没有理由假定这些 headers 用于身份验证,只是它们 headers 是您的 API.

所必需的

您是否定义了 headers 但值为空?这可能符合 required 的定义,因此他们通过了验证。