我正在尝试为我的Jenkins服务器添加CORS支持,以便可以从浏览器访问REST API。从四周看,推荐的方法是使用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)
。
有人知道为Jenkins REST API启用CORS支持的好方法吗?