單點登入(十)-----遇到問題-----cas啟用mongodb驗證方式報錯com.mongodb.CommandFailureException---Authentication failed
cas啟用mongodb驗證方式報錯com.mongodb.CommandFailureException---Authentication failed。
完整報錯資訊:
二月 08, 2017 5:34:32 下午 org.apache.catalina.core.ApplicationContext log 資訊: Initializing Spring root WebApplicationContext 2017-02-08 17:34:39,577 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - <Loaded 2 services from JsonServiceRegistryDao.> 2017-02-08 17:34:40,186 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - <Services manager will reload service definitions every 60 seconds> 2017-02-08 17:34:43,445 WARN [org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler] - <org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler is only to be used in a testing environment. NEVER enable this in a production environment.> 2017-02-08 17:34:44,182 INFO [org.jasig.cas.ticket.registry.TicketRegistryCleaner] - <Preparing to schedule job to clean up after tickets...> 2017-02-08 17:34:44,183 INFO [org.jasig.cas.ticket.registry.TicketRegistryCleaner] - <TicketRegistryCleaner will clean tickets every 2 minutes> 2017-02-08 17:34:44,506 WARN [org.jasig.cas.util.NoOpCipherExecutor] - <[org.jasig.cas.util.NoOpCipherExecutor] does no encryption and may NOT be safe in a production environment. Consider using other choices, such as [org.jasig.cas.util.BaseStringCipherExecutor] that handle encryption, signing and verification of all appropriate values.> 2017-02-08 17:34:44,592 WARN [org.jasig.cas.util.TGCCipherExecutor] - <Secret key for encryption is not defined. CAS will attempt to auto-generate the encryption key> 2017-02-08 17:34:44,601 WARN [org.jasig.cas.util.TGCCipherExecutor] - <Generated encryption key Y4acTg7kHEq6TZrhxslBBQCmwKeoBaqzXynb6jujecI of size 256. The generated key MUST be added to CAS settings.> 2017-02-08 17:34:44,601 WARN [org.jasig.cas.util.TGCCipherExecutor] - <Secret key for signing is not defined. CAS will attempt to auto-generate the signing key> 2017-02-08 17:34:44,601 WARN [org.jasig.cas.util.TGCCipherExecutor] - <Generated signing key WaeAUq6eR2030BKAxbHqMUh2MnaYy53JPb15tHFPtAT6LSwW4OLYeM4Wk_d9roonjK-8HYZYLa_Nm4vn7ywWWw of size 512. The generated key MUST be added to CAS settings.> 2017-02-08 17:34:44,640 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <Secret key for signing is not defined. CAS will attempt to auto-generate the signing key> 2017-02-08 17:34:44,640 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <Generated signing key 7qZO-o44LeYns0LtuIB4nTwM0t6UV1ARG9umNqkZMmWTDhsqYQ6k1H4YDDRx5nQx_eDUfwAXtTh9eUN8nlQlUA of size 512. The generated key MUST be added to CAS settings.> 2017-02-08 17:34:44,641 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <No encryption key is defined. CAS will attempt to auto-generate keys> 2017-02-08 17:34:44,642 WARN [org.jasig.cas.util.WebflowCipherExecutor] - <Generated encryption key FNbiPXvRvWKVsHVv of size 16. The generated key MUST be added to CAS settings.> 2017-02-08 17:34:45,595 WARN [org.springframework.web.context.support.XmlWebApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoServiceRegistryDao': Invocation of init method failed; nested exception is org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}> 2017-02-08 17:34:46,054 WARN [org.jasig.cas.services.JsonServiceRegistryConfigWatcher] - <Directory key is no longer valid. Quitting watcher service> 2017-02-08 17:34:46,057 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoServiceRegistryDao': Invocation of init method failed; nested exception is org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:778) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:99) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2013) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:448) at org.springframework.data.mongodb.core.MongoTemplate.collectionExists(MongoTemplate.java:516) at org.jasig.cas.services.MongoServiceRegistryDao.init(MongoServiceRegistryDao.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:354) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:305) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) ... 27 more Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at com.mongodb.CommandResult.getException(CommandResult.java:76) at com.mongodb.CommandResult.throwOnError(CommandResult.java:140) at com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:899) at com.mongodb.DBPort.authenticate(DBPort.java:432) at com.mongodb.DBPort.checkAuth(DBPort.java:443) at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:269) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) at com.mongodb.DB.command(DB.java:320) at com.mongodb.DB.command(DB.java:299) at com.mongodb.DB.command(DB.java:388) at com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152) at com.mongodb.DB.collectionExists(DB.java:524) at org.springframework.data.mongodb.core.MongoTemplate$6.doInDB(MongoTemplate.java:518) at org.springframework.data.mongodb.core.MongoTemplate$6.doInDB(MongoTemplate.java:516) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:446) ... 36 more > 二月 08, 2017 5:34:46 下午 org.apache.catalina.core.StandardContext listenerStart 嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoServiceRegistryDao': Invocation of init method failed; nested exception is org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:778) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:99) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2013) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:448) at org.springframework.data.mongodb.core.MongoTemplate.collectionExists(MongoTemplate.java:516) at org.jasig.cas.services.MongoServiceRegistryDao.init(MongoServiceRegistryDao.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:354) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:305) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) ... 27 more Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at com.mongodb.CommandResult.getException(CommandResult.java:76) at com.mongodb.CommandResult.throwOnError(CommandResult.java:140) at com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:899) at com.mongodb.DBPort.authenticate(DBPort.java:432) at com.mongodb.DBPort.checkAuth(DBPort.java:443) at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:269) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) at com.mongodb.DB.command(DB.java:320) at com.mongodb.DB.command(DB.java:299) at com.mongodb.DB.command(DB.java:388) at com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152) at com.mongodb.DB.collectionExists(DB.java:524) at org.springframework.data.mongodb.core.MongoTemplate$6.doInDB(MongoTemplate.java:518) at org.springframework.data.mongodb.core.MongoTemplate$6.doInDB(MongoTemplate.java:516) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:446) ... 36 more 二月 08, 2017 5:34:46 下午 org.apache.catalina.core.StandardContext listenerStart 嚴重: Exception sending context initialized event to listener instance of class org.jasig.cas.CasEnvironmentContextListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoServiceRegistryDao': Invocation of init method failed; nested exception is org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSin gletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:778) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: org.springframework.dao.PermissionDeniedDataAccessException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:99) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2013) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:448) at org.springframework.data.mongodb.core.MongoTemplate.collectionExists(MongoTemplate.java:516) at org.jasig.cas.services.MongoServiceRegistryDao.init(MongoServiceRegistryDao.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:354) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:305) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) ... 27 more Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at com.mongodb.CommandResult.getException(CommandResult.java:76) at com.mongodb.CommandResult.throwOnError(CommandResult.java:140) at com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:899) at com.mongodb.DBPort.authenticate(DBPort.java:432) at com.mongodb.DBPort.checkAuth(DBPort.java:443) at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:269) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) at com.mongodb.DB.command(DB.java:320) at com.mongodb.DB.command(DB.java:299) at com.mongodb.DB.command(DB.java:388) at com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152) at com.mongodb.DB.collectionExists(DB.java:524) at org.springframework.data.mongodb.core.MongoTemplate$6.doInDB(MongoTemplate.java:518) at org.springframework.data.mongodb.core.MongoTemplate$6.doInDB(MongoTemplate.java:516) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:446) ... 36 more 二月 08, 2017 5:34:46 下午 org.apache.catalina.core.StandardContext startInternal 嚴重: Error listenerStart 二月 08, 2017 5:34:46 下午 org.apache.catalina.core.StandardContext startInternal 嚴重: Context [/cas] startup failed due to previous errors 二月 08, 2017 5:34:46 下午 org.apache.catalina.core.ApplicationContext log 資訊: Closing Spring root WebApplicationContext 二月 08, 2017 5:34:46 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 嚴重: The web application [/cas] appears to have started a thread named [Log4j2-Log4j2Scheduled-1] but has failed to stop it. This is very likely to create a memory leak. 二月 08, 2017 5:34:46 下午 org.apache.catalina.startup.HostConfig deployDirectory 資訊: Deploying web application directory F:\tomcat7\webapps\client2 二月 08, 2017 5:34:46 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile 資訊: validateJarFile(F:\tomcat7\webapps\client2\WEB-INF\lib\jsp-api-2.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/el/Expression.class 二月 08, 2017 5:34:46 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile 資訊: validateJarFile(F:\tomcat7\webapps\client2\WEB-INF\lib\servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 二月 08, 2017 5:34:47 下午 org.apache.catalina.startup.HostConfig deployDirectory 資訊: Deploying web application directory F:\tomcat7\webapps\ROOT 二月 08, 2017 5:34:47 下午 org.apache.coyote.AbstractProtocol start 資訊: Starting ProtocolHandler ["http-apr-8080"] 二月 08, 2017 5:34:47 下午 org.apache.coyote.AbstractProtocol start 資訊: Starting ProtocolHandler ["ajp-apr-8009"] 二月 08, 2017 5:34:47 下午 org.apache.catalina.startup.Catalina start 資訊: Server startup in 34194 ms
{ "serverUsed" : "192.168.30.249:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."}
是一種比較常見的錯誤。
就是認證失敗,帳號密碼連線mongodb認證錯誤。
檢視mongodb的log日誌也可以得到相關資訊:
I ACCESS [conn1914] SCRAM-SHA-1 authentication failed for on testCrm from client 192.168.30.39 ; BadValue: Incorrect SCRAM-SHA-1 user name: n=
log一般存放在/data/mongodb/log資料夾路徑。
這種情況分兩種:
一種是mongodb資料庫本身有啟用身份驗證的,需要檢查帳號密碼是否正確。
最好的方式就是 在mongo shell裡在需要連線的資料庫上進行db.auth(user,password),返回1則正確,返回0失敗。
或者
mongo --authenticationDatabase dbName -u user -p
第二種是mongodb資料庫本身沒有啟用身份驗證
既然沒有啟用身份驗證,為什麼這裡又去驗證了帳號密碼呢,顯然是我們的連線方式和連線語句有問題。
我們注意到cas server對mongodb的連線方式使用的是com.mongodb.MongoClientURI方式,也就是使用的uri。
<bean id="clientUri" class="com.mongodb.MongoClientURI" c:uri="mongodb://${mongodb.userId}:${mongodb.userPassword}@${mongodb.host}:${mongodb.port}/${cas.service.registry.mongo.db}" />
配置檔案和情況如下:
這裡我們就發現問題了。
我們是把user和password空著,但是在配置檔案裡還是把空當作帳號密碼來認證了,所以報錯了。
我們檢視官網的文件:
發現帳號和密碼是非必須的
所以com.mongodb.MongoClientURI連線mongodb當沒有啟用帳號認證,使用者名稱和密碼為空時,使用的連線語句應該是
<bean id="clientUri" class="com.mongodb.MongoClientURI" c:uri="mongodb://${mongodb.host}:${mongodb.port}/${cas.service.registry.mongo.db}" />
如圖,不再報錯了。