使用Fortify Software Security Center REST API创建项目

时间:2016-04-04 22:47:32

标签: python rest fortify

我可以使用HP Fortify SSC的REST API创建项目吗?这样可以很好地获取项目列表:

import requests
import getpass
import json

url = "https://www.example.com/ssc/api/v1/"
endpoint = "auth/obtain_token"
headers = {"Content-Type": "application/json",
           "Accept": "application/json"}
username = getpass.getuser()
password = getpass.getpass()
auth = (username, password)

r = requests.post("{url}{endpoint}".format(url=url, endpoint=endpoint), headers=headers, auth=auth)

data = r.json().get("data")
token = data.get("token")
endpoint = "projects"
headers["Authentication"] = "FortifyToken {token}".format(token=token)

r = requests.get("{url}{endpoint}".format(url=url, endpoint=endpoint), headers=headers)

print json.dumps(r.json(), sort_keys=True, indent=4, separators=(',', ': '))

...但我没有在API文档中看到实际创建项目的任何示例。我特别感兴趣的是使用Python请求库。我 NOT 想要用Java做任何事情(这是Fortify SSC WAR软件包附带的所有示例)。

如果有任何人对SSC REST API有任何经验(或者可以给我一些更好的文档),我会感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:3)

我终于从HPE技术支持中获得了一些很好的信息,并且能够使用Python中的SSC REST API组建一个用于创建项目的脚本。最新版本的SSC(17.10)使用Swaggerized REST API使这更容易。

答案 1 :(得分:2)

我写了一个开放的source python library,可以在这里使用。 这很容易使用,它还提供了一个命令行工具来上传静态代码扫描的源代码。

答案 2 :(得分:0)

感谢SonarQube Fortify plugin的作者(不是Fortify SSC文档,而不是它自动生成的ssc / html / docs / api-reference),我想我需要对令牌进行base64编码。

if len(auth) == 1:
    headers.update((("Authorization", "FortifyToken " + base64.b64encode(auth[0])),))
elif len(auth) == 2:
    headers.update((("Authorization", "Basic " + base64.b64encode("{}:{}".format(*auth))),))

auth/token通话有助于避免重新发送用户名/密码对。 Fortify SCA bin目录中的fortifyclient脚本可以事先执行调用。

相关问题