我遇到通过Softlayer API触发Nessus扫描的问题,我正在使用Java并在此处使用该库:https://github.com/softlayer/softlayer-java
这是我正在使用的方法:
RestApiClient client = new RestApiClient().withCredentials(xxxxxx, xxxxxxx);
Account.Service accountService = Account.service(client);
Account account = accountService.getObject();
Request.Service requestService = Request.service(client);
Request request = new Request();
request.setAccount(account);
request.setIpAddress(ipAddress);
Request scan = requestService.createObject(request);
我遇到了这个问题:
您不能在其他帐户上启动安全扫描请求 比你自己的。
我使用的是与我通过API配置多台主机相同的凭据,所以我不确定它为什么会落在这里。
非常感谢任何帮助。
由于
答案 0 :(得分:0)
设置帐户而不是帐户ID时会抛出错误。 您可以尝试这个Java示例。
package SoftLayer_Java_Scripts.Examples;
import com.google.gson.Gson;
import com.softlayer.api.*;
import com.softlayer.api.service.Account;
import com.softlayer.api.service.network.security.scanner.Request;
public class CreateNetworkSecurityScannerRequest {
private static String user = "set me";
private static String apiKey = "set me";
private static ApiClient client = new RestApiClient().withCredentials(user, apiKey);
public static void main(String[] args) {
Account.Service accountService = Account.service(client);
Request.Service requestService = Request.service(client);
String ipAddress = "168.1.11.156";
Long virtualGuestId = 22358591L;
Account account = null;
try {
account = accountService.getObject();
} catch (Exception e) {
System.out.println("Error retrieving account object.\nError message: " + e.getMessage());
}
Request request = new Request();
request.setAccountId(account.getId());
request.setGuestId(virtualGuestId);
request.setIpAddress(ipAddress);
Request scan = null;
try {
scan = requestService.createObject(request);
Gson gson = new Gson();
System.out.println(gson.toJson(scan));
}
catch (Exception e) {
System.out.println("Error creating Network Security Scanner Request.\nError message: " + e.getMessage());
}
}
}
使用您的更改示例数据。