I am trying to set up OIDC authentication for my shinyproxy instance using Auth0 & NGINX over SSL. The application works when authentication is set to none. When setting authentication to Auth0 however Spring appears to encounter an error and then go into an infinite loop.
Before that the log indicates an error is occuring : " [authorization request _not_found]"
I have set the callback URL within the Auth0 portal accordingly to instructions and Iâve also populated the YAML file for Auth0 accordingly to instructions. Iâve also set my NGINX conf file accordingly to instructiuons.
Thanks for your message - Iâm somehow embarassed by this but I managed to resolve the problem by ⌠rebooting my server. Somehow I had tried everything but this - I did however make a number of config change which I suspect took effect when I rebooted but I would not know exactly which change resolved the problem that I had.
Sorry for such an underwhelming conclusion !
By the way, thanks to Openanalytics for creating shinyproxy - what an incredible tool to make Shiny scalable and enterprise grade !
Adding my Shinyproxy.log file, mb it has some clues to what is happening
2019-03-09 01:19:35.450 DEBUG 2598 --- [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/css/**'
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/img/â
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against '/js/â
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/assets/â
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against '/webjars/â
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 1 of 12 in additional filter chain; firing Filter: âWebAsyncManagerIntegrationFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 2 of 12 in additional filter chain; firing Filter: âSecurityContextPersistenceFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] w.c.HttpSessionSecurityContextRepository : No HttpSession currently exists
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] w.c.HttpSessionSecurityContextRepository : No SecurityContext was available from the HttpSession: null. A new one will be created.
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 3 of 12 in additional filter chain; firing Filter: âHeaderWriterFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 4 of 12 in additional filter chain; firing Filter: âLogoutFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/logoutâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 5 of 12 in additional filter chain; firing Filter: âUsernamePasswordAuthenticationFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Request âGET /â doesnât match 'POST /login
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 6 of 12 in additional filter chain; firing Filter: âBasicAuthenticationFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 7 of 12 in additional filter chain; firing Filter: âRequestCacheAwareFilterâ
2019-03-09 01:19:35.657 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 8 of 12 in additional filter chain; firing Filter: âSecurityContextHolderAwareRequestFilterâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 9 of 12 in additional filter chain; firing Filter: âAnonymousAuthenticationFilterâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.a.AnonymousAuthenticationFilter : Populated SecurityContextHolder with anonymous token: âorg.springframework.security.authentication.AnonymousAuthenticationToken@7d47336b: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: 91.206.14.10; SessionId: null; Granted Authorities: ROLE_ANONYMOUSâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 10 of 12 in additional filter chain; firing Filter: âSessionManagementFilterâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 11 of 12 in additional filter chain; firing Filter: âExceptionTranslationFilterâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.security.web.FilterChainProxy : / at position 12 of 12 in additional filter chain; firing Filter: âFilterSecurityInterceptorâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/app/ProductDashboardâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/app/ShopAudienceâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/app/PurchaseAdsROIâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/adminâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/loginâ
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/signin/**â
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.a.i.FilterSecurityInterceptor : Secure object: FilterInvocation: URL: /; Attributes: [fullyAuthenticated]
2019-03-09 01:19:35.658 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.a.i.FilterSecurityInterceptor : Previously Authenticated: org.springframework.security.authentication.AnonymousAuthenticationToken@7d47336b: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: 91.206.14.10; SessionId: null; Granted Authorities: ROLE_ANONYMOUS
2019-03-09 01:19:35.659 DEBUG 2598 â [XNIO-2 task-28] o.s.s.access.vote.AffirmativeBased : Voter: org.springframework.security.web.access.expression.WebExpressionVoter@7ecba25a, returned: -1
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.a.ExceptionTranslationFilter : Access is denied (user is anonymous); redirecting to authentication entry point
org.springframework.security.access.AccessDeniedException: Access is denied
at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:84) ~[spring-security-core-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:233) ~[spring-security-core-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:124) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:64) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:94) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at eu.openanalytics.containerproxy.ContainerProxyApplication$ProtectedPathHandler.handleRequest(ContainerProxyApplication.java:111) ~[containerproxy-0.4.0.jar!/:0.4.0]
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:336) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.util.matcher.AndRequestMatcher : Trying to match using NegatedRequestMatcher [requestMatcher=Ant [pattern=â//favicon.icoâ]]
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against '//favicon.icoâ
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.NegatedRequestMatcher : matches = true
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.util.matcher.AndRequestMatcher : Trying to match using NegatedRequestMatcher [requestMatcher=MediaTypeRequestMatcher [contentNegotiationStrategy=org.springframework.web.accept.ContentNegotiationManager@51f03a40, matchingMediaTypes=[application/json], useEquals=false, ignoredMediaTypes=[/]]]
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.m.MediaTypeRequestMatcher : httpRequestMediaTypes=[]
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.m.MediaTypeRequestMatcher : Did not match any media types
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.NegatedRequestMatcher : matches = true
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.util.matcher.AndRequestMatcher : Trying to match using NegatedRequestMatcher [requestMatcher=RequestHeaderRequestMatcher [expectedHeaderName=X-Requested-With, expectedHeaderValue=XMLHttpRequest]]
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.u.matcher.NegatedRequestMatcher : matches = true
2019-03-09 01:19:35.661 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.util.matcher.AndRequestMatcher : All requestMatchers returned true
2019-03-09 01:19:35.662 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.s.HttpSessionRequestCache : DefaultSavedRequest added to Session: DefaultSavedRequest[https://letylytics.com/]
2019-03-09 01:19:35.662 DEBUG 2598 â [XNIO-2 task-28] o.s.s.w.a.ExceptionTranslationFilter : Calling Authentication entry point.
2019-03-09 01:19:35.662 DEBUG 2598 â [XNIO-2 task-28] o.s.s.web.DefaultRedirectStrategy : Redirecting to âhttps://letylytics.com/loginâ
2019-03-09 01:19:35.662 DEBUG 2598 â [XNIO-2 task-28] w.c.HttpSessionSecurityContextRepository : SecurityContext is empty or contents are anonymous - context will not be stored in HttpSession.
2019-03-09 01:19:35.663 DEBUG 2598 â [XNIO-2 task-28] s.s.w.c.SecurityContextPersistenceFilter : SecurityContextHolder now cleared, as request processing completed
2019-03-09 01:19:35.799 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/css/â
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against '/img/â
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/js/â
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against '/assets/â
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/webjars/â
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 1 of 12 in additional filter chain; firing Filter: âWebAsyncManagerIntegrationFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 2 of 12 in additional filter chain; firing Filter: âSecurityContextPersistenceFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] w.c.HttpSessionSecurityContextRepository : No HttpSession currently exists
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] w.c.HttpSessionSecurityContextRepository : No SecurityContext was available from the HttpSession: null. A new one will be created.
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 3 of 12 in additional filter chain; firing Filter: âHeaderWriterFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 4 of 12 in additional filter chain; firing Filter: âLogoutFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/logoutâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 5 of 12 in additional filter chain; firing Filter: âUsernamePasswordAuthenticationFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Request âGET /loginâ doesnât match 'POST /login
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 6 of 12 in additional filter chain; firing Filter: âBasicAuthenticationFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 7 of 12 in additional filter chain; firing Filter: âRequestCacheAwareFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 8 of 12 in additional filter chain; firing Filter: âSecurityContextHolderAwareRequestFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 9 of 12 in additional filter chain; firing Filter: âAnonymousAuthenticationFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.a.AnonymousAuthenticationFilter : Populated SecurityContextHolder with anonymous token: âorg.springframework.security.authentication.AnonymousAuthenticationToken@7d47336b: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: 91.206.14.10; SessionId: null; Granted Authorities: ROLE_ANONYMOUSâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 10 of 12 in additional filter chain; firing Filter: âSessionManagementFilterâ
2019-03-09 01:19:35.800 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 11 of 12 in additional filter chain; firing Filter: âExceptionTranslationFilterâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login at position 12 of 12 in additional filter chain; firing Filter: âFilterSecurityInterceptorâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/app/ProductDashboardâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/app/ShopAudienceâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/app/PurchaseAdsROIâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/adminâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/loginâ; against â/loginâ
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.a.i.FilterSecurityInterceptor : Secure object: FilterInvocation: URL: /login; Attributes: [permitAll]
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.a.i.FilterSecurityInterceptor : Previously Authenticated: org.springframework.security.authentication.AnonymousAuthenticationToken@7d47336b: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: 91.206.14.10; SessionId: null; Granted Authorities: ROLE_ANONYMOUS
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.access.vote.AffirmativeBased : Voter: org.springframework.security.web.access.expression.WebExpressionVoter@7ecba25a, returned: 1
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.a.i.FilterSecurityInterceptor : Authorization successful
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.a.i.FilterSecurityInterceptor : RunAsManager did not change Authentication object
2019-03-09 01:19:35.801 DEBUG 2598 â [XNIO-2 task-29] o.s.security.web.FilterChainProxy : /login reached end of additional filter chain; proceeding with original chain
2019-03-09 01:19:35.804 DEBUG 2598 â [XNIO-2 task-29] w.c.HttpSessionSecurityContextRepository : SecurityContext is empty or contents are anonymous - context will not be stored in HttpSession.
2019-03-09 01:19:35.804 DEBUG 2598 â [XNIO-2 task-29] o.s.s.w.a.ExceptionTranslationFilter : Chain processed normally
2019-03-09 01:19:35.804 DEBUG 2598 â [XNIO-2 task-29] s.s.w.c.SecurityContextPersistenceFilter : SecurityContextHolder now cleared, as request processing completed
2019-03-09 04:54:52.955 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against '/css/â
2019-03-09 04:54:52.955 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/img/â
2019-03-09 04:54:52.955 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against '/js/â
2019-03-09 04:54:52.955 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/assets/â
2019-03-09 04:54:52.955 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against '/webjars/â
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 1 of 12 in additional filter chain; firing Filter: âWebAsyncManagerIntegrationFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 2 of 12 in additional filter chain; firing Filter: âSecurityContextPersistenceFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] w.c.HttpSessionSecurityContextRepository : No HttpSession currently exists
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] w.c.HttpSessionSecurityContextRepository : No SecurityContext was available from the HttpSession: null. A new one will be created.
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 3 of 12 in additional filter chain; firing Filter: âHeaderWriterFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 4 of 12 in additional filter chain; firing Filter: âLogoutFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : â/â; against â/logoutâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 5 of 12 in additional filter chain; firing Filter: âUsernamePasswordAuthenticationFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.u.matcher.AntPathRequestMatcher : Request âGET /â doesnât match 'POST /login
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 6 of 12 in additional filter chain; firing Filter: âBasicAuthenticationFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3]
o.s.security.web.FilterChainProxy : / at position 8 of 12 in additional filter chain; firing Filter: âSecurityContextHolderAwareRequestFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.security.web.FilterChainProxy : / at position 9 of 12 in additional filter chain; firing Filter: âAnonymousAuthenticationFilterâ
2019-03-09 04:54:52.956 DEBUG 2598 â [XNIO-2 task-3] o.s.s.w.a.AnonymousAuthenticationFilter : Populated SecurityContextHolder with anonymous token: âorg.springframework.security.authentication.AnonymousAuthenticationToken@7d50ff07: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 94.102.49.193; SessionId: null; Granted Authorities: ROLE_ANONYMOUSâ
Can you confirm that you are using https, and have configured this?
server:
useForwardHeaders: true
Can you also capture the URL for the OIDC provider that shinyproxy is redirecting to from the login page? It should be a URL containing a state and a redirect_uri parameter.
I had a similar issue using Auth0 and HTTPS. In my case it occurred when âshinyproxy_rolesâ was defined in Auth0 and ShinyProxy, but the metadata for a user as seen below for example was missing. I know this might not apply to some of the responses in this thread, but nevertheless something to watch out for.
An update on my situation - although the server reboot appeared to have resolved the issuem this is only partially true - the error seems to come back after a couple of days, where users are typically unable to log in due to the infinite loop / redirects ⌠this of course is a terrible situation to have to reboot the server on a regular basis to avoid errors âŚ
I am not sure whether the error returns after a set number of visits, or whether it is a time issue but it sure seems something is âaccumulatingâ and finally breaking, causing the error.
The error in the log is same as before : Phase 1, followed by Phase 2 repeated over and over, hundreds of time. The contents of Phases 1 and 2 are shown below :
java.lang.StackOverflowError: null
at java.lang.Exception.(Exception.java:102) ~[na:1.8.0_201]
at java.lang.ReflectiveOperationException.(ReflectiveOperationException.java:89) ~[na:1.8.0_201]
at java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:72) ~[na:1.8.0_201]
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:338) ~[spring-aop-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206) ~[spring-aop-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at com.sun.proxy.$Proxy77.authenticate(Unknown Source) ~[na:na]
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199) ~[spring-security-core-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
END OF PHASE 1
PHASE 2
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$AuthenticationManagerDelegator.authenticate(WebSecurityConfigurerAdapter.java:502) ~[spring-security-config-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:338) ~[spring-aop-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206) ~[spring-aop-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at com.sun.proxy.$Proxy77.authenticate(Unknown Source) ~[na:na]
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199) ~[spring-security-core-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
END OF PHASE 2
Any help or insight into what is going on would be of course much appreciated.