So, we've set up an installation of 8.0 CE, followed the docs, server is up and running... but can't login. Admin/password or Suzy/password will result in Login Error. Behind the scenes, catalina.out says:
18:27:01,378 INFO [PeriodicStatusLogger] The system has finished initializing. [pt_47] Pentaho BI Platform server is ready. 18:27:01,561 ERROR [CompositeUserRoleListService] User/Role List could not be obtained. java.lang.IllegalStateException: Target of Bean was never resolved: org.springframework.security.core.userdetails.UserDetailsService at org.pentaho.platform.engine.core.system.objfac.spring.BeanBuilder$1.invoke(BeanBuilder.java:157) at com.sun.proxy.$Proxy83.loadUserByUsername(Unknown Source) at org.pentaho.platform.plugin.services.security.userrole.ChainedUserDetailsService.loadUserByUsername(ChainedUserDetailsService.java:47) at org.pentaho.platform.plugin.services.security.userrole.PentahoCachingUserDetailsService.loadUserByUsername(PentahoCachingUserDetailsService.java:74) at org.pentaho.platform.security.userroledao.service.UserRoleDaoUserRoleListService.getRolesForUser(UserRoleDaoUserRoleListService.java:143) at org.pentaho.platform.plugin.services.security.userrole.ExtraRolesUserRoleListServiceDecorator.getRolesForUser(ExtraRolesUserRoleListServiceDecorator.java:113) at org.pentaho.platform.plugin.services.security.userrole.CompositeUserRoleListService$7.perform(CompositeUserRoleListService.java:122) at org.pentaho.platform.plugin.services.security.userrole.CompositeUserRoleListService.collectResultsForOperation(CompositeUserRoleListService.java:131) at org.pentaho.platform.plugin.services.security.userrole.CompositeUserRoleListService.getRolesForUser(CompositeUserRoleListService.java:120) at org.pentaho.platform.engine.security.SecurityHelper.createAuthentication(SecurityHelper.java:352) at org.pentaho.platform.engine.security.SecurityHelper.runAsSystem(SecurityHelper.java:415) at pt.webdetails.cpf.CpfProperties.loadAsSystem(CpfProperties.java:46) at pt.webdetails.cpf.AbstractCpfProperties.loadSettings(AbstractCpfProperties.java:58) at pt.webdetails.cpf.AbstractCpfProperties.<init>(AbstractCpfProperties.java:35) at pt.webdetails.cpf.CpfProperties.<init>(CpfProperties.java:32) at pt.webdetails.cpf.CpfProperties.getInstance(CpfProperties.java:37) at pt.webdetails.cpf.SimpleLifeCycleListener.ready(SimpleLifeCycleListener.java:45) at org.pentaho.platform.web.http.context.PentahoSystemReadyListener.contextInitialized(PentahoSystemReadyListener.java:53) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1129) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1871) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
And when attempting to login...
18:31:14,057 ERROR [UsernamePasswordAuthenticationFilter] An internal error occurred while trying to authenticate the user. org.springframework.security.authentication.InternalAuthenticationServiceException: Target of Bean was never resolved: org.springframework.security.core.userdetails.UserDetailsService at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:126) at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:144) at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174) at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.pentaho.platform.web.http.security.HttpSessionReuseDetectionFilter.doFilter(HttpSessionReuseDetectionFilter.java:133) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.pentaho.platform.web.http.filters.HttpSessionPentahoSessionIntegrationFilter.doFilter(HttpSessionPentahoSessionIntegrationFilter.java:271) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.pentaho.platform.web.http.filters.SystemStatusFilter.doFilter(SystemStatusFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.pentaho.platform.web.http.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:114) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.pentaho.platform.web.http.filters.WebappRootForwardingFilter.doFilter(WebappRootForwardingFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.pentaho.platform.web.http.filters.PentahoPathDecodingFilter.doFilter(PentahoPathDecodingFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalStateException: Target of Bean was never resolved: org.springframework.security.core.userdetails.UserDetailsService at org.pentaho.platform.engine.core.system.objfac.spring.BeanBuilder$1.invoke(BeanBuilder.java:157) at com.sun.proxy.$Proxy83.loadUserByUsername(Unknown Source) at org.pentaho.platform.plugin.services.security.userrole.ChainedUserDetailsService.loadUserByUsername(ChainedUserDetailsService.java:47) at org.pentaho.platform.plugin.services.security.userrole.PentahoCachingUserDetailsService.loadUserByUsername(PentahoCachingUserDetailsService.java:74) at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:114) ... 49 more
I've retraced all setup steps, everything is correct, the server is connected to the postgres database, according to netstat, but nothing. I've googled around but found nothing helpful. Ideas?
Figured out: the problem was caused by disabling the HSQLDB connections, without configuring a proper new auth method. We were disabling it and enabling postgreSQL following the documentation, but there's nothing on the docs that say the default users (admin, suzy, joe) don't get loaded on the postgreSQL create scripts - and we just assumed they were.
Once we switched back HSQLDB, everything worked out fine.