SAP / cloud-security-services-integration-library

Integration libraries and samples for authenticating users and clients bound to XSUAA authentication and authorization service or Identity authentication service.
Apache License 2.0
151 stars 136 forks source link

Support spring-boot 2.5.0 - raises Stackoverflow Exception #528

Closed ManjunathMS35 closed 3 years ago

ManjunathMS35 commented 3 years ago

Hello Colleagues,

One of our service [1.] is updated it to the spring boot latest version 2.5.0, after this it started failing with test errors associated to StackOverflow and AuthenticationService of xsuaa.

We use the latest version of xsuaa Spring boot starter, that is 2.8.13.

Could you please let me know if xsuaa Spring boot starter supports Spring boot 2.5.0?

  1. https://github.wdf.sap.corp/Phosphor/fosstars-data-pull-service

Regards, Manjunath

nenaraab commented 3 years ago

Hi @ManjunathMS35 I was able to fix the issue. It will be provided soon with our next major version 2.9.0.

nenaraab commented 3 years ago

done with https://github.com/SAP/cloud-security-xsuaa-integration/releases/tag/2.9.0

ManjunathMS35 commented 3 years ago

Hi Nena,

The java.lang.StackOverflowError still exists with 2.9.0 release and there is one more error together with this,

08:35:26 [ERROR] Tests run: 6, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 21.131 s <<< FAILURE! - in com.sap.phosphor.fosstars.service.datapull.boundary.XsuaaEndpointAuthorizationTest 08:35:26 [ERROR] pullForDataFromAllWithInvalidToken Time elapsed: 1.82 s <<< ERROR! 08:35:26 org.springframework.security.authentication.AuthenticationServiceException: Error initializing JWT decoder: Invalid JWT serialization: Missing dot delimiter(s) 08:35:26 at org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider.getJwt(JwtAuthenticationProvider.java:104) 08:35:26 at org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider.authenticate(JwtAuthenticationProvider.java:88) 08:35:26 at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:182) 08:35:26 at org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:130) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) 08:35:26 at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) 08:35:26 at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) 08:35:26 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) 08:35:26 at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) 08:35:26 at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) 08:35:26 at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) 08:35:26 at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) 08:35:26 at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) 08:35:26 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) 08:35:26 at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) 08:35:26 at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) 08:35:26 at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) 08:35:26 at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) 08:35:26 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) 08:35:26 at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134) 08:35:26 at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134) 08:35:26 at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134) 08:35:26 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) 08:35:26 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 08:35:26 at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134) 08:35:26 at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:183) 08:35:26 at com.sap.phosphor.fosstars.service.datapull.boundary.XsuaaEndpointAuthorizationTest.pullForDataFromAllWithInvalidToken(XsuaaEndpointAuthorizationTest.java:112) 08:35:26 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 08:35:26 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 08:35:26 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 08:35:26 at java.lang.reflect.Method.invoke(Method.java:498) 08:35:26 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) 08:35:26 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 08:35:26 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) 08:35:26 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 08:35:26 at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) 08:35:26 at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) 08:35:26 at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 08:35:26 at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) 08:35:26 at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) 08:35:26 at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) 08:35:26 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) 08:35:26 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) 08:35:26 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) 08:35:26 at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) 08:35:26 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) 08:35:26 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) 08:35:26 at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) 08:35:26 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) 08:35:26 at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 08:35:26 at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 08:35:26 at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) 08:35:26 at org.junit.runners.ParentRunner.run(ParentRunner.java:413) 08:35:26 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) 08:35:26 at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 08:35:26 at org.junit.runner.JUnitCore.run(JUnitCore.java:115) 08:35:26 at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:43) 08:35:26 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) 08:35:26 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 08:35:26 at java.util.Iterator.forEachRemaining(Iterator.java:116) 08:35:26 at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 08:35:26 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) 08:35:26 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) 08:35:26 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) 08:35:26 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) 08:35:26 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 08:35:26 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) 08:35:26 at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:82) 08:35:26 at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:73) 08:35:26 at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220) 08:35:26 at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188) 08:35:26 at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202) 08:35:26 at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181) 08:35:26 at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128) 08:35:26 at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) 08:35:26 at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) 08:35:26 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384) 08:35:26 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345) 08:35:26 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126) 08:35:26 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418) 08:35:26 Caused by: org.springframework.security.oauth2.jwt.JwtException: Error initializing JWT decoder: Invalid JWT serialization: Missing dot delimiter(s) 08:35:26 at com.sap.cloud.security.xsuaa.token.authentication.XsuaaJwtDecoder.decode(XsuaaJwtDecoder.java:79) 08:35:26 at org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider.getJwt(JwtAuthenticationProvider.java:97) 08:35:26 ... 90 more

Not sure if we are doing something wrong, could you please assist me on this.

Regards, Manjunath

nenaraab commented 3 years ago

Hi @ManjunathMS35

I was not able to find StackoverflowException in your stack trace...

JWT decoder: Invalid JWT serialization: Missing dot delimiter(s) 08:35:26 at com.sap.cloud.security.xsuaa.token.authentication.XsuaaJwtDecoder.decode(XsuaaJwtDecoder.java:79) 08:35:26 at org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider.getJwt(JwtAuthenticationProvider.java:97) 08:35:26 ... 90 more

Maybe the token isn't correct, you make use as part of the XsuaaEndpointAuthorizationTest?

Kind regards, Nena

ManjunathMS35 commented 3 years ago

Hi @nenaraab

I didn't add StackoverflowException in the stack trace, here is it

08:35:26 java.lang.StackOverflowError 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78) 08:35:26 at com.sap.cloud.security.xsuaa.token.XsuaaToken.hasClaim(XsuaaToken.java:254) 08:35:26 at org.springframework.security.oauth2.core.ClaimAccessor.containsClaim(ClaimAccessor.java:78)

The same token works with Spring boot 2.4

Regards, Manjunath

nenaraab commented 3 years ago

Hi @ManjunathMS35 this issue was solved with version 2.9.0 - I'm sure!

See also here: https://github.com/SAP/cloud-security-xsuaa-integration/commit/9713812ddbc8cb353188725b9067a651eb252952#diff-04c5f5d176fd874ace3186f77472dee216d0367d70c53f5489fd5d3feaa8a641L258 XsuaaToken.hasClaim method was deleted.

Please delete your local .m2/repository/com/sap/cloud/security folder and rebuild your application. The exception shouldn't appear any longer.

Kind regards, Nena

ManjunathMS35 commented 3 years ago

Hi @nenaraab

You are right, it was an issue with our token.

Thanks for your support, Manjunath