When trying to launch CA Spectrum OneClick, users cannot log in due to a single sign on (SSO) error, even though SSO is not being used.

Document ID : KB000030797
Last Modified Date : 14/02/2018
Show Technical Document Details

Issue:  When trying to launch CA Spectrum OneClick, users cannot log in due to a single sign on (SSO) error, even though SSO is not being used.

Symptom:  The following error is shown in the web browser:

at com.aprisma.tomcat.authenticator.SSOConnector.start(SSOConnector.java:57) 

at com.aprisma.tomcat.authenticator.ExternalSSOAuth.contextInitialized(ExternalSSOAuth.java:103) 

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973) 

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467) 

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:632) 

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247) 

at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898) 

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:745)

 

And the following NullPointerException shows in the CA Spectrum tomcat log file (<SPECROOT>/tomcat/logs/std.out on Windows, <SPECROOT>tomcat/logs/catalina.out):

java.lang.NullPointerException 

at java.io.File.<init>(File.java:317) 

at org.apache.naming.resources.FileDirContext.doGetRealPath(FileDirContext.java:180) 

at org.apache.naming.resources.BaseDirContext.getRealPath(BaseDirContext.java:424) 

at org.apache.catalina.core.StandardContext.getRealPath(StandardContext.java:4660) 

at org.apache.catalina.core.ApplicationContext.getRealPath(ApplicationContext.java:440) 

at org.apache.catalina.core.ApplicationContextFacade.getRealPath(ApplicationContextFacade.java:333) 

at com.aprisma.tomcat.authenticator.SSOConnector.start(SSOConnector.java:57) 

at com.aprisma.tomcat.authenticator.ExternalSSOAuth.contextInitialized(ExternalSSOAuth.java:103) 

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973) 

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467) 

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:632) 

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247) 

at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898) 

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:745) 

 

 

Resolution:  The problem is that Single Sign on was configured even though it wasn't being used.  If you are experiencing this issue but you are using SSO, please consult with CA Spectrum Support.  If you are not using SSO, please do the following:

 

Edit the web.xml in the $SPECROOT/tomcat/webapps/spectrum/WEB-INF directory.

Change the following entry:

                             <login-config>

                             <auth-method> EXTERNALSSO </auth-method>

                             <realm-name>SPECTRUM</realm-name>

                             </login-config>

To be BASIC:

                             <login-config>

                             <auth-method> BASIC </auth-method>

                             <realm-name>SPECTRUM</realm-name>

                             </login-config>

 

Comment out this entry that might show at the top of the file:

                             <listener>

                             <listener-class>com.aprisma.tomcat.authenticator.ExternalSSOAuth</listener-class>

                             </listener>

For example:

                             <!--

                             <listener>

                             <listener-class>com.aprisma.tomcat.authenticator.ExternalSSOAuth</listener-class>

                             </listener>

                             -->

Save the changes made to the $SPECROOT/tomcat/webapps/spectrum/WEB-INF/web.xml file.

Edit the $SPECROOT/tomcat/conf/context.xml file

Add this line:

                             <Valve className="org.apache.catalina.authenticator.BasicAuthenticator" changeSessionIdOnAuthentication="false" /></Context>

 

And comment out this line:

                             <Valve className="com.aprisma.tomcat.authenticator.ExternalSSOAuth" changeSessionIdOnAuthentication="false" /></Context>

Here is what it should look like:

                             <!--

                             <Valve className="com.aprisma.tomcat.authenticator.ExternalSSOAuth" changeSessionIdOnAuthentication="false" /></Context>

                             -->

Save the file changes to the $SPECROOT/tomcat/conf/context.xml file.  

Stop and restart the Spectrum Tomcat process.