Amazon web services Jenkins-AWS Lambda构建触发器-CSRF
我想通过AWS Lambda函数触发一个构建…通常非常简单 问题是,我无法绕过CSRF保护。在下面,您可以找到我的代码,首先是到crump发行人的代码,然后是到Jenkins管道的代码。 第二次呼叫被拒绝,因为没有有效的面包屑,但为什么?这是lambda路由请求的本质吗 我很确定我做了一些非常明显的错误,但我不知道是什么。 这是我的代码:Amazon web services Jenkins-AWS Lambda构建触发器-CSRF,amazon-web-services,jenkins,aws-lambda,csrf,Amazon Web Services,Jenkins,Aws Lambda,Csrf,我想通过AWS Lambda函数触发一个构建…通常非常简单 问题是,我无法绕过CSRF保护。在下面,您可以找到我的代码,首先是到crump发行人的代码,然后是到Jenkins管道的代码。 第二次呼叫被拒绝,因为没有有效的面包屑,但为什么?这是lambda路由请求的本质吗 我很确定我做了一些非常明显的错误,但我不知道是什么。 这是我的代码: exports.handler = async(event, _context, callback) => { console.log(eve
exports.handler = async(event, _context, callback) => {
console.log(event);
if (['pullRequestSourceBranchUpdated', 'pullRequestCreated'].includes(event.detail.event)) {
var agent = new http.Agent({ keepAlive: true })
var options = {
host: 'host',
path: '/crumbIssuer/api/json',
port: '8080',
headers: { 'Authorization': 'Basic name:apibase64' },
agent: agent
};
const promise = new Promise(function(resolve, reject) {
const requestCrumb = http.get(options, (responseCrumb) => {
responseCrumb.setEncoding('utf8');
responseCrumb.on('data', (chunk) => {
chunk = JSON.parse(chunk);
const optionsBuild = {
host: 'host',
path: '/job/Test/buildWithParameters',
port: '8080',
method: 'POST',
headers: { 'Authorization': 'Basic name:apibase64', 'Jenkins-Crumb': chunk.crumb, 'Content-Type': 'application/json'},
agent: agent
};
const requestBuild = http.request(optionsBuild,
(responseBuild) => {
responseBuild.setEncoding('utf8');
responseBuild.on('data', (data) => {
console.log(data);
resolve();
});
});
const data = JSON.stringify({ 'token': 'miau', 'git_branch': 'master' });
requestBuild.write(data)
requestBuild.end();
});
});
requestCrumb.on('error', (e) => {
console.error(e)
reject();
});
requestCrumb.end();
}
)
return promise;
};
}