我无法通过RedLock API将合规标准添加到现有策略中。
每次发送请求时,都会返回500服务器错误(很遗憾,API文档对此毫无帮助)。我不确定是否要发送正确的信息以添加合规性标准,因为API文档没有显示需要发送的信息。如果我没有填写必填字段(名称,policyType和严重性),则会返回400错误(错误的请求,这很有意义)。但是我不知道为什么我总是收到500服务器错误。
实质上,我的代码如下:
@Suppress("UNUSED_EXPRESSION")
响应应为200,并使用新的合规性标准以JSON格式返回策略的元数据。
答案 0 :(得分:0)
对于那些使用RedLock API的人,我设法弄清楚了。
尽管不是描述性的,但500个错误通常表示发送到服务器的JSON不正确。在这种情况下,有效负载不正确。
用于更新策略的合规性标准的正确JSON是:
req_header = {'Content-Type':'application/json','x-redlock-auth':jwt_token}
# This is a small function to get a policy by ID
policy = get_redlock_policy_by_ID(req_header, 'policy_ID')
new_standard = {
"standardName":"std-name",
"requirementId":"1.1",
"sectionId":"1.1.1",
"customAssigned":true,
"complianceId":"comp-id",
"requirementName":"req-name"
}
policy['complianceMetadata'].append(new_standard)
requests.put('{}/policy/{}'.format(REDLOCK_API_URL, policy['policyId']), json=policy, headers=req_header)