Open mhuebner opened 2 years ago
Thank you for taking time to report this issue. I think it may be that the plugin is using some specific Groovy features which are incompatible with Java 17. However, we will investigate further to see what is the problem.
Meanwhile, I would appreciate if you could share a sample application or steps to reproduce the problem.
@puneetbehl Thank you for looking into this.
I built an example app. You can follow these steps to reproduce the issue:
[requirements: JAVA_HOME
set to 11.0.14.10.1-amzn
via sdk (https://sdkman.io/) or any other JDK 11 + docker (I am using Docker version 20.10.12
)]
git clone git@github.com:mhuebner/grails-spring-security-737.git
cd grails-spring-security-737
./gradlew docker
docker images
should show gssi737:latest
docker run -it gssi737:latest
An exception is thrown when tomcat ist starting up:
2022-06-01 07:28:01.405 ERROR --- [ main] o.s.boot.SpringApplication : Application run failed
org.codehaus.groovy.GroovyBugError: BUG! exception in phase 'semantic analysis' in source unit 'jar:file:/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/spring-security-core-5.0.0-plain.jar!/DefaultSecurityConfig.groovy' Unsupported class file major version 61
at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:905)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:627)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:389)
at groovy.lang.GroovyClassLoader.lambda$parseClass$3(GroovyClassLoader.java:332)
at org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163)
at org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:330)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:314)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:288)
at groovy.lang.GroovyClassLoader.recompile(GroovyClassLoader.java:959)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:910)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:979)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:967)
at grails.plugin.springsecurity.SpringSecurityUtils.mergeConfig(SpringSecurityUtils.groovy:635)
at grails.plugin.springsecurity.SpringSecurityUtils.reloadSecurityConfig(SpringSecurityUtils.groovy:264)
at grails.plugin.springsecurity.SpringSecurityUtils.getSecurityConfig(SpringSecurityUtils.groovy:233)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
Expected Behavior
We are able to run Grails 5 apps with JDK 17 (
tomcat:9.0.60-jdk17-corretto
) but since using grails-spring-security-core 5.0.0 Java throws an error:Grails 5.1.4 runs with JDK 17 but the spring security plugin might have been build with an old JDK (or DefaultSecurityConfig was never touched).
Actual Behaviour
No response
Steps To Reproduce
No response
Environment Information
Docker-Image: tomcat:9.0.60-jdk17-corretto
Example Application
No response
Version
5.1.4