Security

"Token is required" error when executing curl command from Java's ProcessBuilder

angrydead
Explorer

I am using Java's ProcessBuilder to execute curl from Java. The same command being executed in bash works just fine, but I get a {"text": "Token is required", "code":2} error from Java.

public String call() throws IOException, InterruptedException {
    List<String> command = new ArrayList<>();

    command.add("curl");
    command.add("-X");
    command.add(method.name());
    command.add("-k");
    command.add(endpoint);

    if (headers != null && !headers.isEmpty()) {
        StringBuilder builder = new StringBuilder();
        headers.keySet().forEach(s -> {
            builder.replace(0, builder.length(), "");
            builder.append("'").append(s).append(":").append(headers.get(s)).append("'");
            command.add("-H");
            command.add(builder.toString());
        });
    }

    if (data != null) {
        command.add("-d");
        command.add("'" + data + "'");
    }

    System.out.println(StringUtils.join(command, " "));

    return doCurl(command.toArray(new String[0]));
}

private String doCurl(String[] args) throws IOException, InterruptedException {
    Process process = new ProcessBuilder(args)
            .redirectErrorStream(true)
            .start();

    String lines;
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"))) {
        lines = reader.lines().collect(Collectors.joining("\n"));
    }
    process.waitFor();
    return lines;
}
Tags (1)
0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Your Feedback. Our Roadmap. Visit the PX Feedback Booth at .conf26

You use Splunk every day, come and help shape what's next.  Save Your Seat: Product-Focused Sessions at ...

Agentic SOC Triage: Investigating Splunk ES Notables with MCP Server and a Local LLM

The Problem: Too Many Alerts, Too Little Context Security operations teams running Splunk Enterprise Security ...

Painting a Clearer Picture: Creating Cross-Domain Visibility with AI Canvas

Watch Now Painting a Clearer Picture: Creating Cross-Domain Visibility with AI Canvas     Do you ever feel ...