本文介绍了Jenkins CORS过滤插件未添加访问-控制-允许-来源标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试向我的Jenkins服务器添加CORS支持,这样我就可以从浏览器访问睡觉应用编程接口。环顾四周,推荐的方法是使用CORS Filter plugin。
我已安装并启用它,并将http://localhost
添加到Access-Control-Allow-Origins
字段,以及将GET
添加到Access-Control-Allow-Methods
字段。但是,这些标头未显示在我的请求中。
这个插件已经几年没有更新了,所以我不确定它是否与最新版本的Jenkins兼容。我正在运行版本2.172。
在Jenkins系统日志中,我看到这些错误,不确定是否相关
Caught exception evaluating: descriptor.getPropertyType(instance,field).itemTypeDescriptorOrDie in /configure. Reason: java.lang.reflect.InvocationTargetException
java.lang.AssertionError: class hudson.ivy.IvyBuildTrigger$IvyConfiguration is missing its descriptor in public hudson.ivy.IvyBuildTrigger$IvyConfiguration[] hudson.ivy.IvyBuildTrigger$DescriptorImpl.getConfigurations(). See https://jenkins.io/redirect/developer/class-is-missing-descriptor
Caught exception evaluating: h.filterDescriptors(it,attrs.descriptors) in /configure. Reason: java.lang.NullPointerException: Descriptor list is null for context 'class hudson.model.Hudson' in thread 'Handling GET /configure from 100.71.26.18 : qtp589873731-14 Jenkins/configure.jelly GlobalLibraries/config.jelly LibraryConfiguration/config.jelly SCMRetriever/DescriptorImpl/config.jelly MultiSCM/DescriptorImpl/config.jelly'
java.lang.NullPointerException: Descriptor list is null for context 'class hudson.model.Hudson' in thread 'Handling GET /configure from 100.71.26.18 : qtp589873731-14 Jenkins/configure.jelly GlobalLibraries/config.jelly LibraryConfiguration/config.jelly SCMRetriever/DescriptorImpl/config.jelly MultiSCM/DescriptorImpl/config.jelly'
这些错误的堆栈跟踪中有at org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter.java:79)
。
有没有人知道让CORS支持Jenkins睡觉接口的好办法?
推荐答案
Jenkins Version 2.303和我都在为同样的问题而苦苦挣扎。我建议在插件设置中定义的localhost URI上添加端口号,即使我非常确定这不会改变任何事情。 实际上,该插件似乎完全没有效果。
最好的解决方案可能是设置您自己的代理来管理CORS。下面是一个很好的文档示例Build a Node.js Proxy Server in Under 10 minutes!
这篇关于Jenkins CORS过滤插件未添加访问-控制-允许-来源标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论