Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OIDC failure #326

Open
scastromx opened this issue Sep 12, 2024 · 1 comment
Open

OIDC failure #326

scastromx opened this issue Sep 12, 2024 · 1 comment

Comments

@scastromx
Copy link

Have been trying to configure OIDC SSO, when the client calls the authorized end point I am getting an error 500 from the backend.

After enabling the logs at TRACE level I am getting the following exception:

linshare_backend  | [DEBUG]:http-nio-8080-exec-2:20240912.005236:org.springframework.orm.hibernate5.HibernateTemplate:doExecute:Could not retrieve pre-bound Hibernate session
linshare_backend  | org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread
linshare_backend  | 	at org.springframework.orm.hibernate5.SpringSessionContext.currentSession(SpringSessionContext.java:142) ~[spring-orm-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:491) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
linshare_backend  | 	at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:352) ~[spring-orm-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.orm.hibernate5.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:334) ~[spring-orm-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.orm.hibernate5.HibernateTemplate.findByCriteria(HibernateTemplate.java:815) ~[spring-orm-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.orm.hibernate5.HibernateTemplate.findByCriteria(HibernateTemplate.java:807) ~[spring-orm-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.linagora.linshare.core.repository.hibernate.AbstractRepositoryImpl.findByCriteria(AbstractRepositoryImpl.java:186) ~[classes/:6.3.0]
linshare_backend  | 	at org.linagora.linshare.core.repository.hibernate.GenericAccountRepositoryImpl.getBatchSystemAccount(GenericAccountRepositoryImpl.java:169) ~[classes/:6.3.0]
linshare_backend  | 	at org.linagora.linshare.core.repository.hibernate.AccountRepositoryImpl.getBatchSystemAccount(AccountRepositoryImpl.java:28) ~[classes/:6.3.0]
linshare_backend  | 	at org.linagora.linshare.auth.oidc.OidcAuthenticationTokenDetailsFactory.getSystemAccount(OidcAuthenticationTokenDetailsFactory.java:110) ~[classes/:6.3.0]
linshare_backend  | 	at org.linagora.linshare.auth.oidc.OidcAuthenticationTokenDetailsFactory.getAuthenticationToken(OidcAuthenticationTokenDetailsFactory.java:78) ~[classes/:6.3.0]
linshare_backend  | 	at org.linagora.linshare.auth.oidc.OIdcJwtAuthenticationProvider.authenticate(OIdcJwtAuthenticationProvider.java:82) ~[classes/:6.3.0]
linshare_backend  | 	at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:182) ~[spring-security-core-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.access.intercept.AbstractSecurityInterceptor.authenticateIfRequired(AbstractSecurityInterceptor.java:315) ~[spring-security-core-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:203) ~[spring-security-core-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:113) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.linagora.linshare.auth.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:63) ~[classes/:6.3.0]
linshare_backend  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:166) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.linagora.linshare.auth.CORSRequestFilter.doFilterInternal(CORSRequestFilter.java:45) ~[classes/:6.3.0]
linshare_backend  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) ~[spring-security-web-5.7.2.jar:5.7.2]
linshare_backend  | 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22]
linshare_backend  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[catalina.jar:9.0.65]
linshare_backend  | 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-coyote.jar:9.0.65]
linshare_backend  | 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-coyote.jar:9.0.65]
linshare_backend  | 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-coyote.jar:9.0.65]
linshare_backend  | 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-coyote.jar:9.0.65]
linshare_backend  | 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:9.0.65]
linshare_backend  | 	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-util.jar:9.0.65]
linshare_backend  | 	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-util.jar:9.0.65]
linshare_backend  | 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.65]
linshare_backend  | 	at java.lang.Thread.run(Unknown Source) ~[?:?]
linshare_backend  | [TRACE]:http-nio-8080-exec-2:20240912.005236:org.hibernate.internal.SessionFactoryImpl$SessionBuilderImpl:openSession:Opening Hibernate Session.  tenant=null
linshare_backend  | [TRACE]:http-nio-8080-exec-2:20240912.005236:org.hibernate.internal.SessionImpl:<init>:Opened Session [56816daa-9ac1-4f27-a1e4-1a052db63262] at timestamp: 7070115251970048

So it looks that the backend is getting the token authenticated request but it is failing when it tries to create a transaction for database access.

I am using the Docker 6.3 version. Any advice? Backend works properly with username/password and header SSO authentications.

Thanks,

@scastromx
Copy link
Author

Let my reply to myself.

Most configure "domain_discriminator".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant