I'm attempting to integrate an existing, CAS 5.1.8 installation with a new, Zeppelin 0.7.3 installation. My expectation was to have the browser display the CAS login when the user navigates to the Zeppelin site - after entering credentials, redirecting back to the Zeppelin site. From there, I dig out the credentials to perform authorization, etc. Instead, when I navigate to my Zeppelin instance, the browser lands on the Zeppelin home page. So, the user is unable to enter their credentials. I attempted this with Chrome and Firefox with the same results. IE didn't seem to work at all.
I see a couple of 302s from the web console log and AUTHENTICATION_EVENTs in the CAS log (below) but don't understand why the login page isn't accessible.
Any ideas are appreciated.
Thanks a lot.
I'm using the libraries provided by the Zeppelin binary download, adding the following jars:
2018-04-13 13:23:08,170 INFO [org.apereo.cas.services.DefaultServicesManager] - <Loaded [3] service(s) from [JsonServiceRegistryDao].>
2018-04-13 13:23:38,529 DEBUG [org.apereo.cas.web.support.WebUtils] - <Evaluating request to determine if warning cookie should be generated>
2018-04-13 13:23:38,530 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit trail record BEGIN
=============================================================
WHO: audit:unknown
WHAT: [event=success,timestamp=Fri Apr 13 13:23:38 PDT 2018,source=RankedAuthenticationProviderWebflowEventResolver]
ACTION: AUTHENTICATION_EVENT_TRIGGERED
APPLICATION: CAS
WHEN: Fri Apr 13 13:23:38 PDT 2018
CLIENT IP ADDRESS: fe80:0:0:0:c175:65e2:9441:4bb3%22
SERVER IP ADDRESS: fe80:0:0:0:c175:65e2:9441:4bb3%22
=============================================================
>
2018-04-13 13:23:38,545 DEBUG [org.apereo.cas.web.view.CasReloadableMessageBundle] - <No properties file found for [classpath:custom_messages_en] - neither plain properties nor XML>
2018-04-13 13:23:38,546 DEBUG [org.apereo.cas.web.view.CasReloadableMessageBundle] - <No properties file found for [classpath:custom_messages] - neither plain properties nor XML>
2018-04-13 13:23:38,547 DEBUG [org.apereo.cas.web.view.CasReloadableMessageBundle] - <No properties file found for [classpath:messages_en] - neither plain properties nor XML>
2018-04-13 13:23:38,548 DEBUG [org.apereo.cas.web.view.CasReloadableMessageBundle] - <Re-caching properties for filename [classpath:messages] - file hasn't been modified>
2018-04-13 13:23:38,807 DEBUG [org.apereo.cas.web.support.WebUtils] - <Evaluating request to determine if warning cookie should be generated>
2018-04-13 13:23:38,807 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit trail record BEGIN
=============================================================
WHO: audit:unknown
WHAT: [event=success,timestamp=Fri Apr 13 13:23:38 PDT 2018,source=RankedAuthenticationProviderWebflowEventResolver]
ACTION: AUTHENTICATION_EVENT_TRIGGERED
APPLICATION: CAS
WHEN: Fri Apr 13 13:23:38 PDT 2018
CLIENT IP ADDRESS: fe80:0:0:0:c175:65e2:9441:4bb3%22
SERVER IP ADDRESS: fe80:0:0:0:c175:65e2:9441:4bb3%22
=============================================================
>
2018-04-13 13:24:07,330 DEBUG [org.apereo.cas.authentication.PseudoPlatformTransactionManager] - <Creating new transaction with name [org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner.clean]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; 'ticketTransactionManager'>
2018-04-13 13:24:07,330 DEBUG [org.apereo.cas.authentication.PseudoPlatformTransactionManager] - <Creating new transaction with name [org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner.clean]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; 'ticketTransactionManager'>
INFO [2018-04-13 13:23:38,484] ({qtp1096283470-21} AbstractValidatingSessionManager.java[enableSessionValidation]:230) - Enabling session validation scheduler...
Inside SecurityFilter.doFilter myCasContainer filterChain org.apache.shiro.web.servlet.ProxiedFilterChain@43309613
SecurityLogic class io.buji.pac4j.engine.ShiroSecurityLogic
INFO [2018-04-13 13:23:38,490] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:67) - === SECURITY ===
INFO [2018-04-13 13:23:38,490] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:92) - matchers: null
INFO [2018-04-13 13:23:38,490] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:95) - clients: CasClient
INFO [2018-04-13 13:23:38,491] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:97) - currentClients: [#CasClient# | name: CasClient | callbackUrl:
https://myZeppelinContainer:8444?client_name=CasClient | urlResolver: org.pac4j.core.http.DefaultUrlResolver@7c103c5c | ajaxRequestResolver: org.pac4j.core.http.DefaultAjaxRequestResolver@6662ba36 | redirectActionBuilder: null | credentialsExtractor: null | authenticator: null | profileCreator: org.pac4j.core.profile.creator.AuthenticatorProfileCreator@7545036 | logoutActionBuilder: org.pac4j.core.logout.NoLogoutActionBuilder@48f650cb | configuration: #CasConfiguration# | loginUrl:
https://myCasContainer:444/cas/login | prefixUrl: null | restUrl: null | protocol: CAS30 | renew: false | gateway: false | encoding: UTF-8 | logoutHandler: null | acceptAnyProxy: false | allowedProxyChains: [] | proxyReceptor: null | timeTolerance: 1000 | postLogoutUrlParameter: service | defaultTicketValidator: null | urlResolver: org.pac4j.core.http.DefaultUrlResolver@35796755 | |]
INFO [2018-04-13 13:23:38,491] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:100) - loadProfilesFromSession: true
INFO [2018-04-13 13:23:38,493] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:103) - profiles: []
INFO [2018-04-13 13:23:38,494] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:147) - Starting authentication
INFO [2018-04-13 13:23:38,497] ({qtp1096283470-21} DefaultSecurityLogic.java[redirectToIdentityProvider]:257) - Inside DefaultSecurityLogic.redirectToIdentityProvider
INFO [2018-04-13 13:23:38,498] ({qtp1096283470-21} DefaultSecurityLogic.java[redirectToIdentityProvider]:260) - IndirectClient org.pac4j.cas.client.CasClient
ERROR [2018-04-13 13:23:38,498] ({qtp1096283470-21} IndirectClient.java[redirect]:68) - Inside IndirectClient.redirect org.pac4j.cas.client.CasClient
ERROR [2018-04-13 13:23:38,502] ({qtp1096283470-21} IndirectClient.java[getRedirectAction]:94) - attemptedAuth: null
INFO [2018-04-13 13:23:38,503] ({qtp1096283470-21} IndirectClient.java[getRedirectAction]:106) - Created RedirectAction of type org.pac4j.core.redirect.RedirectAction
Inside RedirectAction.perform type: REDIRECT
HttpAction.redirect context type org.pac4j.core.context.J2EContext
java.lang.Thread.getStackTrace(Thread.java:1559)
org.pac4j.core.exception.HttpAction.redirect(HttpAction.java:58)
org.pac4j.core.redirect.RedirectAction.perform(RedirectAction.java:84)
org.pac4j.core.client.IndirectClient.redirect(IndirectClient.java:70)
org.pac4j.core.engine.DefaultSecurityLogic.redirectToIdentityProvider(DefaultSecurityLogic.java:261)
org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:149)
io.buji.pac4j.filter.SecurityFilter.doFilter(SecurityFilter.java:86)
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:72)
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
org.eclipse.jetty.server.Server.handle(Server.java:499)
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
java.lang.Thread.run(Thread.java:748)
INFO [2018-04-13 13:23:38,504] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:171) - Calling HttpActionAdapter.adapt for class org.pac4j.core.http.J2ENopHttpActionAdapter code 302
INFO [2018-04-13 13:23:38,505] ({qtp1096283470-21} DefaultSecurityLogic.java[perform]:177) - returning object null
INFO [2018-04-13 13:23:38,652] ({qtp1096283470-62} NotebookServer.java[onOpen]:157) - New connection from fe80:0:0:0:c175:65e2:9441:4bb3%22 : 50336
Inside SecurityFilter.doFilter myCasContainer filterChain org.apache.shiro.web.servlet.ProxiedFilterChain@70faf54b
SecurityLogic class io.buji.pac4j.engine.ShiroSecurityLogic
INFO [2018-04-13 13:23:38,753] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:67) - === SECURITY ===
INFO [2018-04-13 13:23:38,753] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:92) - matchers: null
INFO [2018-04-13 13:23:38,753] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:95) - clients: CasClient
INFO [2018-04-13 13:23:38,754] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:97) - currentClients: [#CasClient# | name: CasClient | callbackUrl:
https://myZeppelinContainer:8444?client_name=CasClient | urlResolver: org.pac4j.core.http.DefaultUrlResolver@7c103c5c | ajaxRequestResolver: org.pac4j.core.http.DefaultAjaxRequestResolver@6662ba36 | redirectActionBuilder: org.pac4j.cas.redirect.CasRedirectActionBuilder@4edcc86e | credentialsExtractor: org.pac4j.cas.credentials.extractor.TicketAndLogoutRequestExtractor@4337b894 | authenticator: org.pac4j.cas.credentials.authenticator.CasAuthenticator@6cd99591 | profileCreator: org.pac4j.core.profile.creator.AuthenticatorProfileCreator@7545036 | logoutActionBuilder: #CasLogoutActionBuilder# | serverLogoutUrl:
https://myCasContainer:444/cas/logout | postLogoutUrlParameter: service | | configuration: #CasConfiguration# | loginUrl:
https://myCasContainer:444/cas/login | prefixUrl:
https://myCasContainer:444/cas/ | restUrl:
https://myCasContainer:444/cas/v1/tickets | protocol: CAS30 | renew: false | gateway: false | encoding: UTF-8 | logoutHandler: #DefaultCasLogoutHandler# | store: #GuavaStore# | size: 10000 | timeout: 30 | timeUnit: MINUTES | | destroySession: false | | acceptAnyProxy: false | allowedProxyChains: [] | proxyReceptor: null | timeTolerance: 1000 | postLogoutUrlParameter: service | defaultTicketValidator: null | urlResolver: org.pac4j.core.http.DefaultUrlResolver@7c103c5c | |]
INFO [2018-04-13 13:23:38,754] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:100) - loadProfilesFromSession: true
INFO [2018-04-13 13:23:38,754] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:103) - profiles: []
INFO [2018-04-13 13:23:38,754] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:147) - Starting authentication
INFO [2018-04-13 13:23:38,754] ({qtp1096283470-15} DefaultSecurityLogic.java[redirectToIdentityProvider]:257) - Inside DefaultSecurityLogic.redirectToIdentityProvider
INFO [2018-04-13 13:23:38,754] ({qtp1096283470-15} DefaultSecurityLogic.java[redirectToIdentityProvider]:260) - IndirectClient org.pac4j.cas.client.CasClient
ERROR [2018-04-13 13:23:38,754] ({qtp1096283470-15} IndirectClient.java[redirect]:68) - Inside IndirectClient.redirect org.pac4j.cas.client.CasClient
ERROR [2018-04-13 13:23:38,754] ({qtp1096283470-15} IndirectClient.java[getRedirectAction]:94) - attemptedAuth: null
INFO [2018-04-13 13:23:38,755] ({qtp1096283470-15} IndirectClient.java[getRedirectAction]:106) - Created RedirectAction of type org.pac4j.core.redirect.RedirectAction
Inside RedirectAction.perform type: REDIRECT
HttpAction.redirect context type org.pac4j.core.context.J2EContext
java.lang.Thread.getStackTrace(Thread.java:1559)
org.pac4j.core.exception.HttpAction.redirect(HttpAction.java:58)
org.pac4j.core.redirect.RedirectAction.perform(RedirectAction.java:84)
org.pac4j.core.client.IndirectClient.redirect(IndirectClient.java:70)
org.pac4j.core.engine.DefaultSecurityLogic.redirectToIdentityProvider(DefaultSecurityLogic.java:261)
org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:149)
io.buji.pac4j.filter.SecurityFilter.doFilter(SecurityFilter.java:86)
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:72)
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
org.eclipse.jetty.server.Server.handle(Server.java:499)
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
java.lang.Thread.run(Thread.java:748)
INFO [2018-04-13 13:23:38,756] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:171) - Calling HttpActionAdapter.adapt for class org.pac4j.core.http.J2ENopHttpActionAdapter code 302
INFO [2018-04-13 13:23:38,756] ({qtp1096283470-15} DefaultSecurityLogic.java[perform]:177) - returning object null