Jenkins 插件订书机无效标头

问题描述 投票:0回答:1

我目前正在编写一个 Java jenkins 插件,我面临订书机和 Java-Javascript 方法绑定的问题。

我的 java 文件包含一个我想在单击按钮时在 jelly 文件中使用的方法:

@JavaScriptMethod
public void method() {
  ...
}
var it = <st:bind value="${it}"/>

$('#Btn').click(function() {
    it.method();
});

这很简单,应该可以工作,但是订书机发出的请求中的标头使用“Crumb”作为 CSRF 令牌,而 jenkins 期望“Jenkins-Crumb”,所以我得到了 403。

这个 stackoverflow 帖子与我的问题相同,但已经很老了,我尝试通过编辑请求来重命名标头,然后得到一个带有“Crumb 不匹配”的 500(

/crumbIssuer/api/json
给出与所提供的相同的令牌)没有理由)。

我正在使用 Jenkins v2.452.1。

jenkins csrf stapler
1个回答
0
投票

我刚刚找到了这个问题的原因。 Jenkins 注入的“crumb”js 变量既不包含 crumb cookie,也不包含标头名称。

然后我搜索了jenkins的js代码,发现这些值是从HTML head标签中检索的。 头部不包含与面包屑相关的属性。

在我的果冻中,我将 标签封装在 div 标签中。所以问题只是一个样式错误,并没有导致任何视觉问题。

如果你遇到同样的问题(我知道很难找到有关 Jenkins 插件开发的答案),请确保你的 head 标签包含 crumb 值和 crumb header 名称,并检查你的 jelly 文件。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.