热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Ansiblejenkins_plugin模块返回“HTTP错误403:请求中未包含有效碎屑”

如何解决《Ansiblejenkins_plugin模块返回“HTTP错误403:请求中未包含有效碎屑”》经验,为你挑选了1个好方法。

我将Ansible(v 2.8)用作Packer模板背后的供应商,以为Jenkins主节点构建AMI。对于以前的版本,剧本已成功通过。但是,从Jenkins 2.176.3版开始,该jenkins_plugin模块已抛出:

HTTP错误403:请求中未包含有效碎屑

我已经检索了面包屑并将其注册在变量中。我尝试将其传递给jenkins_pluginhttp_agent字段,但这不起作用。我尝试使用attributes,但这也无济于事。除非我缺少令人难以置信的基本知识,否则我将束手无策。

- name:               Get Jenkins Crumb
  uri:
    force_basic_auth: yes
    url_username:     ****
    url_password:     ****
    url:              http://localhost:8080/crumbIssuer/api/json
    return_content:   yes
  register:           jenkins_crumb
  until:              jenkins_crumb.content.find('Please wait while Jenkins is getting ready') == -1
  retries:            10
  delay:              5

- name:               Install plugin
  jenkins_plugin:
    name:             "{{ item }}"
    version:          latest
    force_basic_auth: yes
    url_username:     ****
    url_password:     ****
    http_agent:       "Jenkins-Crumb:{{ jenkins_crumb.json.crumb }}"
  with_items:         "{{ jenkins_plugins }}"

我希望安装插件和一个愉快构建的AMI。我得到的是“ HTTP错误403:请求中未包含有效碎屑”,并且Packer构建失败。



1> runningEagle..:

似乎对2.176 LTS版本中的屑发布者进行了更改, 强制将初始令牌生成调用的Web会话ID以及屑添加到使用该屑的后续调用中。

CSRF令牌(碎片)现在仅对创建它们的Web会话有效,以限制攻击者获取它们的影响。现在,使用/ crumbIssuer / api URL获取垃圾的脚本将无法执行受CSRF保护的操作,除非脚本在后续请求中保留了Web会话ID。

除了建议您暂时禁用CSRF之外,同一文档还建议您只能禁用新功能,而不能禁用整个CSRF,这应允许您的打包程序/可写程序按照以前的方式完成。

要禁用此改进,可以将系统属性hudson.security.csrf.DefaultCrumbIssuer.EXCLUDE_SESSION_ID设置为true。

编辑:

/etc/default/jenkins在我自己的剧本(Ansible 2.8.4,Ubuntu 18.04,OpenJDK 11.0.4)中添加以下行可清除CSRF问题。

JAVA_ARGS="$JAVA_ARGS -Dhudson.security.csrf.DefaultCrumbIssuer.EXCLUDE_SESSION_ID=true"

在工具维护人员赶上API更改之前,可能是一个足够好的拐杖。


推荐阅读
  • Spring Boot 打包上传Docker 仓库的详细步骤
    这篇文章主要介绍了SpringBoot打包上传Docker仓库的详细步骤,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 ... [详细]
  • Jenkins自动部署SpringBoot项目实践教程
    Jenkins自动部署SpringBoot项目实践教程-目录1、Jenkins安装2、Jenkins插件安装3、点击添加凭据4、Jenkins环境配置4.1、全局配置4.2、系统配 ... [详细]
  • 解决方案选择插件管理-高级-升级站点-更改URL为[http:mirror.xmission.comjenkinsupdatesupdate-center.js ... [详细]
  • Jenkins教程:使用Jenkins进行持续集成
    【注】本文译自:https:www.edureka.coblogjenkins-tutorial本文将重点介绍Jenkins架构和Jenkins构建管道,并向您展示如何在Jenki ... [详细]
  • 文章目录UnsafeDeserialization反序列化漏洞背景认识Java序列化与反序列化用途应用场景Java中的API实现:序列化基础类型参数序列化对象漏洞是怎么来的呢?解决 ... [详细]
  • Odoo接口开发
    Odoo接口开发Odoo是通过Controller来(控制器)发相应的接口的,路由是通过装饰有的方法定义的route()先定义一个Controller类在项目的文件夹control ... [详细]
  • 前端跨域访问后端数据的方法
    参考链接:https:mp.weixin.qq.coms4G_27oRLSMMYBFvtYZgqcg一、什么是跨域当两个域名的协议、子域名、主域名、端口号中有任意一个不 ... [详细]
  • 深入浅出JWT
    JWT(JSONWEBTOKEN)的组成https:jwt.ioheader(头部)承载两部分信息:声明 ... [详细]
  • 拿到目标后简单看了下,是一个类似员工管理的东西,用户可以创建group,其他用户可以搜索这个grou ... [详细]
  • 鉴权的4种基本方法
    一、基于服务器常出现的问题Seesions:每次认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开 ... [详细]
  • 环境Window7Python2.7Django1.4.1sqlite3问题在使用Django搭建好测试环境后,写了一个提交POST表单提交留言的测试页面。 ... [详细]
  • 什么是token?token是服务端生成的一串字符串,以作客户端进行请求的令牌,当第一次登陆后,服务器生成一个token便将此token返回给客户端,以后客户端只要带上这个toke ... [详细]
  • 如何在django框架中使用auth模块
    这期内容当中小编将会给大家带来有关如何在django框架中使用auth模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所 ... [详细]
  • Django 的生命周期
    经过前面的入门实例,基本上可以了解Django请求的生命周期是怎样的。简单地说,通过URL对应关系匹配-找到对应的函数(或者类)-返回字符串(或者读 ... [详细]
  • PHP面试总结分享
    PHP面试总结分享:本文主要和大家分享PHP面试总结,希望能帮助到大家。相关推荐:《2019年PHP面试题大汇总(收藏)》1:变量的传值与引用。2:变量的类型转换和判断类型方法。3 ... [详细]
author-avatar
绿香源酥脆冬枣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有