Amazon web services Jenkins-AWS Lambda构建触发器-CSRF

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

我想通过AWS Lambda函数触发一个构建…通常非常简单

问题是,我无法绕过CSRF保护。在下面,您可以找到我的代码,首先是到crump发行人的代码,然后是到Jenkins管道的代码。 第二次呼叫被拒绝,因为没有有效的面包屑,但为什么?这是lambda路由请求的本质吗

我很确定我做了一些非常明显的错误,但我不知道是什么。 这是我的代码:


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;
    };
}