圣杯 3.3.x 中的 xss-sanitizer 插件存在问题



我在v3.2.11的grails应用程序中使用了grails-xss-sanitizer。当我尝试将应用程序升级到最新的 3.3.4 时。它报告了以下问题:

[2018-04-11 11:16:37,627] [主要] 错误 o.s.b.春天应用程序 - 应用程序启动失败 java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean at grails.plugin.xss.sanitizer.XssSanitizerGrailsPlugin$_doWithSpring_closure1.doCall(XssSanitizerGrailsPlugin.groovy:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1427) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at groovy.lang.Closure.call(Closure.java:412) at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:759) at grails.spring.BeanBuilder.beans(BeanBuilder.java:588) at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:531) at org.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:559) at org.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:167) at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:171) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessor(PostProcessorRegistrationDelegate.java:272) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessor(PostProcessorRegistrationDelegate.java:122) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessor(AbstractApplicationContext.java:687) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) at grails.boot.GrailsApp.run(GrailsApp.groovy:84) at grails.boot.GrailsApp.run(GrailsApp.groovy:393) at grails.boot.GrailsApp.run(GrailsApp.groovy:380) at grails.boot.GrailsApp$run.call(未知来源) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136) at com.the41.fraudnet.Application.main(Application.groovy:28) 原因: java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistrationBean at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ...省略了 34 个常见帧

失败:生成失败,出现异常。

  • 出现什么问题:任务":bootRun"的执行失败。

    进程"命令"/opt/jdk1.8.0_131/bin/java"完成,退出值为非零 1

我在圣杯 3.3.x 升级说明中看到:

Spring Boot 1.5.x - 在 grails 3.3.x 中受支持

Spring Boot 1.5.x删除了许多不推荐使用的类,特别是 其中的几个类 org.springframework.boot.context.embedded package.

如果您的应用程序引用此中的任何类 您需要更改导入才能使用的包 org.springframework.boot.web.servlet 相反。

org.springframework.boot.context.web 包中的所有类都有 已弃用并根据 Spring Boot 1.4 发行说明重新定位。

xss-sanitizer插件正在使用包"org.springframework.boot.context.embedded"中定义的类

那么,是否有任何计划升级 grails 3.3.x 的 xss-sanitizer 插件或解决此问题的任何解决方法?

除了升级插件之外,没有合理的解决方法。

该插件似乎正在升级;请参阅此处引用grails 3.3.0版本的源代码 https://github.com/rpalcolea/grails-xss-sanitizer/blob/master/gradle.properties。 您可能还想跟踪或评论此问题:https://github.com/rpalcolea/grails-xss-sanitizer/issues/1 因为它描述了您所看到的问题。

最新更新