spring-projects / spring-projects/spring-security
OidcSessionRegistry nullability issues
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 9.6k
- Forks
- 6.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 52
Description
Describe the bug
When upgrading to spring-security 7.1.0 a custom OidcSessionRegistry can no longer be built in Kotlin.
The documentation for org.springframework.security.oauth2.client.oidc.session.OidcSessionRegistry#removeSessionInformation(java.lang.String) mentions that the result could be null:
Returns: any found OidcSessionInformation, could be null
However, due to the presence of jspecify annotations in the package, the return type must never be null.
To Reproduce
Create a custom implementation of OidcSessionRegistry in kotlin, and observe that the below signature no longer compiles:
override fun removeSessionInformation(clientSessionId: String): OidcSessionInformation?
Expected behavior
org.springframework.security.oauth2.client.oidc.session.OidcSessionRegistry#removeSessionInformation(java.lang.String should declare a nullable return value, as the documentation otherwise specifies
Sample
N/A
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the removeSessionInformation method in oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/oidc/session/OidcSessionRegistry.java, using the linked source location. Check the package nullability annotations against the documented nullable result, then verify that a Kotlin implementation with a nullable return type compiles and that the API documentation remains consistent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kotlin, spring
- Domain
- authentication, backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100