apache / apache/grails-core

Grails 7 migration issue with spring-security-saml4.0.2 plugin

Open
#14,053 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Groovy
Stars
2.9k
Forks
975
Avg merge
1d 22h
Merged PRs (30d)
92

Description

### Expected Behavior

During Grails 7 migration we see issue with latest grails plugin org.grails.plugins:spring-security-saml:4.0.2 , our integration tests fails with following exception, this is because latest version of grails plugin spring-security-saml still using old classes in javax.servlet from javax.servlet-api-4.0.1.jar instead of "jakarta.servlet." from jakarta.servlet-api-6.0.0.jar can you share the the latest version of grails plugin spring-security-saml supporting jakarta.servlet-api:6.0.0

Exception stack trace

```
_No signature of method: static org.springframework.security.saml.util.SAMLUtil.processFilter() is applicable for argument types: (String, org.springframework.mock.web.MockHttpServletRequest) values: [/saml/logout, org.springframework.mock.web.MockHttpServletRequest@6ec80e5c]
Possible solutions: processFilter(java.lang.String, javax.servlet.http.HttpServletRequest)
groovy.lang.MissingMethodException: No signature of method: static org.springframework.security.saml.util.SAMLUtil.processFilter() is applicable for argument types: (String, org.springframework.mock.web.MockHttpServletRequest) values: [/saml/logout, org.springframework.mock.web.MockHttpServletRequest@6ec80e5c]
Possible solutions: processFilter(java.lang.String, javax.servlet.http.HttpServletRequest)
at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1641)
at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1627)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at net.hedtech.banner.security.XYZSamlLogoutFilter.requiresLogout(XYZSamlLogoutFilter.groovy:133)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at net.hedtech.banner.security.XYZSamlLogoutFilterTest.$tt__validate different URL to see if requiresLogout returns false (XYZSamlLogoutFilterTest.groovy:180)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
....._

### Actual Behaviour

_No response_

### Steps To Reproduce

_No response_

### Environment Information

Windows 11 Pro
grails-7.0.0-SNAPSHOT
JDK 17

### Example Application

_No response_

### Version

grails-7.0.0-SNAPSHOT

Contributor guide

Open the contributing guide

Research direction

Start with the spring-security-saml:4.0.2 dependency and the javax.servlet versus jakarta.servlet versions described in the report. Inspect XYZSamlLogoutFilter.groovy at line 133 and XYZSamlLogoutFilterTest.groovy around line 180, then run the failing integration test. Done means establishing whether a Grails 7-compatible plugin version exists or documenting the compatibility limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
groovy, spring
Domain
authentication, backend, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.