0

以下是我的代码:

import requests, json

proxyDict = {
    "http": "<proxy>",
}
base_url = "https://<host_IP>/sepm/api/v1/identity/authenticate"

# if output is required in JSON format
json_format = True

payload = {
    "username" : "<username_here>",
    "password" : "<password_here>",
    "domain" : ""
}

headers = {
    "Content-Type" : "application/json"
}

requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL' # necessary
r = requests.Session()      # Start session in order to store the SessionID Cookie
print json.dumps(payload)
r = requests.post(base_url, proxies=proxyDict, verify=False, headers=headers, data=json.dumps(payload))

strings = r.text
print strings

证书有一些错误,因此SSL我正在使用verify=FalseDEFAULT_CIPHERS += 'HIGH:!DH:!aNULL'

上面的代码与提供的文档是内联的,但是服务器拒绝了我的auth请求,并出现以下错误:

{"errorCode":"400","errorMessage":"Invalid Username or Password"}

在你开枪之前,我检查并重新检查了我的凭据,然后又检查了几次。我的凭据是正确的

我在做什么有错误吗?

附加信息: SEPM 版本:{"version":"12.1.6168.6000"}

4

2 回答 2

2

这个聚会迟到了,但我几乎遇到了同样的问题,尽管处理方式有点不同。所以,我的问题最终是我密码中的特殊字符。在赛门铁克管理器方面处理身份验证的 rest 方法不知道如何处理某些特殊字符,因此它返回 400 语法错误。尝试从您的密码中提取特殊字符,并将其保持在 15 个字符以下。

祝你好运。

于 2017-11-07T19:05:31.463 回答
0

您可能想尝试将以下行放在代码顶部附近:

     urllib3.disable_warnings()

并忽略 SSL 身份验证

于 2018-09-03T06:39:07.717 回答