Ret*_*ner 5 csrf jenkins jenkins-api csrf-token
我发现启用 CSRF 保护后,我可以发出带有 crumbs 标头的发布请求并用于username:PASSWORD基本身份验证标头:
String basic = "<username>:<PASSWORD>";
HttpURLConnection c = (HttpURLConnection) new URL("https://host.com/jenkins/quietDown").openConnection();
c.setInstanceFollowRedirects(false);
c.setRequestMethod("POST");
c.addRequestProperty("Jenkins-Crumb", "<CRUMB>");
c.addRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basic.getBytes()));
c.getInputStream().close();
Run Code Online (Sandbox Code Playgroud)
或用于username:APITOKEN基本身份验证标头,在这种情况下,不需要 crumbs 标头:
String basic = "<username>:<APITOKEN>";
HttpURLConnection c = (HttpURLConnection) new URL("https://host.com/jenkins/quietDown").openConnection();
c.setInstanceFollowRedirects(false);
c.setRequestMethod("POST");
c.addRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basic.getBytes()));
c.getInputStream().close();
Run Code Online (Sandbox Code Playgroud)
问题:
使用 Jenkins 2.164.3 和 Java 8。