Environment
Novell Sentinel Log Manager 1.1
Situation
|SEVERE|main|org.apache.catalina.core.StandardContext.listenerStart
Error: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'consoleCredentialResolver' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver]: Constructor threw exception; nested exception is org.opensaml.xml.security.SecurityException: Failed to load key store;
Tomcat was configured to use an external certificate to communicate via HTTPS.
Tomcat won't instantiate /novelllogmanager servlet context.
Configured credential resolver to load the keystore that is used for tomcat, so it can use its private key.
Error: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'consoleCredentialResolver' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver]: Constructor threw exception; nested exception is org.opensaml.xml.security.SecurityException: Failed to load key store;
Tomcat was configured to use an external certificate to communicate via HTTPS.
Tomcat won't instantiate /novelllogmanager servlet context.
Configured credential resolver to load the keystore that is used for tomcat, so it can use its private key.
Resolution
1) Edit /opt/novell/sentinel_log_mgr/3rdparty/tomcat/webapps/novelllogmanager/WEB-INF/applicationContext.xml and change the following lines inside "consoleCredentialResolver" session:
<bean id="consoleCredentialResolver" class="com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver" depends-on="systemproperties">
<!-- Credential resolver must be loaded from the keystore that is used for tomcat, so we can use its private key -->
<constructor-arg index="0" type="java.io.File" value="${esecurity.config.home}/config/.tomcatkeystore.jks" />
<constructor-arg index="1" value="password" />
<constructor-arg index="2" value="tomcat" />
</bean>
NOTE: you only have to change arguments 1 and 2, which specify password and alias to the keystore respectively.
2) Save applicationContext.xml and restart SLM services.
<bean id="consoleCredentialResolver" class="com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver" depends-on="systemproperties">
<!-- Credential resolver must be loaded from the keystore that is used for tomcat, so we can use its private key -->
<constructor-arg index="0" type="java.io.File" value="${esecurity.config.home}/config/.tomcatkeystore.jks" />
<constructor-arg index="1" value="password" />
<constructor-arg index="2" value="tomcat" />
</bean>
NOTE: you only have to change arguments 1 and 2, which specify password and alias to the keystore respectively.
2) Save applicationContext.xml and restart SLM services.
Additional Information
This is the error message you will see in tomcat0.0.log while facing this issue:
---
Fri Aug 13 15:24:48 CDT 2010|SEVERE|main|org.apache.catalina.core.StandardContext.listenerStart
Error: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'consoleCredentialResolver' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver]: Constructor threw exception; nested exception is org.opensaml.xml.security.SecurityException: Failed to load key store; Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver]: Constructor threw exception; nested exception is org.opensaml.xml.security.SecurityException: Failed to load key store:Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
Fri Aug 13 15:24:48 CDT 2010|SEVERE|main|org.apache.catalina.core.StandardContext.start
Error listenerStart
Fri Aug 13 15:24:48 CDT 2010|SEVERE|main|org.apache.catalina.core.StandardContext.start
Context [/novelllogmanager] startup failed due to previous errors
---
---
Fri Aug 13 15:24:48 CDT 2010|SEVERE|main|org.apache.catalina.core.StandardContext.listenerStart
Error: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'consoleCredentialResolver' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver]: Constructor threw exception; nested exception is org.opensaml.xml.security.SecurityException: Failed to load key store; Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.novell.sentinel.restservices.distsearch.client.ConsoleCredentialResolver]: Constructor threw exception; nested exception is org.opensaml.xml.security.SecurityException: Failed to load key store:Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
Fri Aug 13 15:24:48 CDT 2010|SEVERE|main|org.apache.catalina.core.StandardContext.start
Error listenerStart
Fri Aug 13 15:24:48 CDT 2010|SEVERE|main|org.apache.catalina.core.StandardContext.start
Context [/novelllogmanager] startup failed due to previous errors
---