cancel
Showing results for 
Search instead for 
Did you mean: 

BO upgrade login Failed to establish confidential channel - Algorithm not supported on any devices

former_member365641
Participant
0 Kudos

Hi All,

we have upgraded out BO 4.1 to BO 4.2 SP5.

We have a java custom SSO login with SessionManager class. After the upgrade do not work anymore. We updated these jars with the respective latest version:

bcm, certjFIPS, cryptojce, cryptojFIPS, jcmFIPS, ssljFIPS

and here the java code:

ISessionMgr ism = CrystalEnterprise.getSessionMgr();

IEnterpriseSession sess = ism.logon(username, password, host + ":" + cmsPort, "secEnterprise");

we get this runtime error:

Jun 11, 2018 1:28:30 PM com.altevie.nbeghin.wfp.Retriever doGet
SEVERE: java.lang.Exception: com.crystaldecisions.sdk.exception.SDKException$ConfidentialChannelFailed: Failed to establish confidential channel. (FWM 02119)
cause:com.businessobjects.bcm.exception.UnexpectedError: An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
detail:Failed to establish confidential channel. (FWM 02119) An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
Jun 11, 2018 1:28:30 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [com.altevie.nbeghin.wfp.Retriever] in context with path [/BODocRetriever] threw exception [java.lang.Exception: java.lang.Exception: com.crystaldecisions.sdk.exception.SDKException$ConfidentialChannelFailed: Failed to establish confidential channel. (FWM 02119)
cause:com.businessobjects.bcm.exception.UnexpectedError: An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
detail:Failed to establish confidential channel. (FWM 02119) An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)] with root cause
com.rsa.jsafe.JSAFE_UnimplementedException: Algorithm not supported on any devices
	at com.rsa.jsafe.JSAFE_PublicKey.a(Unknown Source)
	at com.rsa.jsafe.JSAFE_PublicKey.a(Unknown Source)
	at com.rsa.jsafe.JSAFE_PublicKey.getInstance(Unknown Source)
	at com.businessobjects.bcm.internal.ECDHKeyAgreeImpl.<init>(ECDHKeyAgreeImpl.java:31)
	at com.businessobjects.bcm.BCM.createKeyAgreement(BCM.java:1082)
	at com.businessobjects.bcm.BCM.createKeyAgreement(BCM.java:1086)
	at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.establishConfidentialChannel(ConfidentialChannelService.java:175)
	at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.createConfidentialChannel(ConfidentialChannelService.java:145)
	at com.crystaldecisions.sdk.occa.security.internal.CCMap.locateCCItem(CCMap.java:63)
	at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:845)
	at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:805)
	at com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:210)
	at com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:166)
	at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:454)
	at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:512)
	at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.createSession(AbstractBOServlet.java:151)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.getDocTicketURL(AbstractBOServlet.java:84)
	at com.altevie.nbeghin.wfp.Retriever.doGet(Retriever.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:808)




	at org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194)
	at org.apache.logging.log4j.core.config.xml.XmlConfiguration.<init>(XmlConfiguration.java:92)
	at org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46)
	at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:453)
	at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:385)
	at org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:260)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:615)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:307)
	at org.apache.log4j.Logger$PrivateManager.getContext(Logger.java:59)
	at org.apache.log4j.Logger.getLogger(Logger.java:41)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.<clinit>(AbstractBOServlet.java:51)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:451)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1050)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:779)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:808)
ERROR StatusLogger Caught java.lang.AbstractMethodError setting feature http://apache.org/xml/features/nonvalidating/load-external-dtd to false on DocumentBuilderFactory org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@2d11d80: java.lang.AbstractMethodError: Class "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl" does not implement the requested method "setFeature(Ljava/lang/String;Z)V" inherited from abstract class "javax.xml.parsers.DocumentBuilderFactory"
 java.lang.AbstractMethodError: Class "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl" does not implement the requested method "setFeature(Ljava/lang/String;Z)V" inherited from abstract class "javax.xml.parsers.DocumentBuilderFactory"
	at org.apache.logging.log4j.core.config.xml.XmlConfiguration.setFeature(XmlConfiguration.java:213)
	at org.apache.logging.log4j.core.config.xml.XmlConfiguration.disableDtdProcessing(XmlConfiguration.java:207)
	at org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194)
	at org.apache.logging.log4j.core.config.xml.XmlConfiguration.<init>(XmlConfiguration.java:92)
	at org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46)
	at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:453)
	at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:385)
	at org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:260)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:615)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:307)
	at org.apache.log4j.Logger$PrivateManager.getContext(Logger.java:59)
	at org.apache.log4j.Logger.getLogger(Logger.java:41)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.<clinit>(AbstractBOServlet.java:51)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:451)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1050)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:779)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:808)
java.lang.Exception: java.lang.Exception: com.crystaldecisions.sdk.exception.SDKException$ConfidentialChannelFailed: Failed to establish confidential channel. (FWM 02119)
cause:com.businessobjects.bcm.exception.UnexpectedError: An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
detail:Failed to establish confidential channel. (FWM 02119) An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.getDocTicketURL(AbstractBOServlet.java:101)
	at com.altevie.nbeghin.wfp.Retriever.doGet(Retriever.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:808)
Caused by: java.lang.Exception: com.crystaldecisions.sdk.exception.SDKException$ConfidentialChannelFailed: Failed to establish confidential channel. (FWM 02119)
cause:com.businessobjects.bcm.exception.UnexpectedError: An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
detail:Failed to establish confidential channel. (FWM 02119) An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.createSession(AbstractBOServlet.java:156)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.getDocTicketURL(AbstractBOServlet.java:84)
	... 24 more
Caused by: com.crystaldecisions.sdk.exception.SDKException$ConfidentialChannelFailed: Failed to establish confidential channel. (FWM 02119)
cause:com.businessobjects.bcm.exception.UnexpectedError: An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
detail:Failed to establish confidential channel. (FWM 02119) An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
	at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.establishConfidentialChannel(ConfidentialChannelService.java:199)
	at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.createConfidentialChannel(ConfidentialChannelService.java:145)
	at com.crystaldecisions.sdk.occa.security.internal.CCMap.locateCCItem(CCMap.java:63)
	at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:845)
	at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:805)
	at com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:210)
	at com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:166)
	at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:454)
	at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:512)
	at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)
	at com.altevie.nbeghin.wfp.AbstractBOServlet.createSession(AbstractBOServlet.java:151)
	... 25 more
Caused by: com.businessobjects.bcm.exception.UnexpectedError: An unexpected error occurred(Algorithm not supported on any devices). Please validate recently changed internal code. (Algorithm not supported on any devices)
	at com.businessobjects.bcm.internal.ECDHKeyAgreeImpl.<init>(ECDHKeyAgreeImpl.java:39)
	at com.businessobjects.bcm.BCM.createKeyAgreement(BCM.java:1082)
	at com.businessobjects.bcm.BCM.createKeyAgreement(BCM.java:1086)
	at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.establishConfidentialChannel(ConfidentialChannelService.java:175)
	... 35 more
Caused by: com.rsa.jsafe.JSAFE_UnimplementedException: Algorithm not supported on any devices
	at com.rsa.jsafe.JSAFE_PublicKey.a(Unknown Source)
	at com.rsa.jsafe.JSAFE_PublicKey.a(Unknown Source)
	at com.rsa.jsafe.JSAFE_PublicKey.getInstance(Unknown Source)
	at com.businessobjects.bcm.internal.ECDHKeyAgreeImpl.<init>(ECDHKeyAgreeImpl.java:31)
	... 38 more<br>

Any idea?

Many Thanks!

Gennaro

former_member365641
Participant
0 Kudos

ok, thank you

Accepted Solutions (1)

Accepted Solutions (1)

DellSC
Active Contributor

There were MAJOR changes to the security .jars starting with 4.2 SP4. So, you'll need to reference/deploy the new 4.2 SP5 jars with your SSO application - not just the security ones you mentioned, you need ALL of them that are being used by the application.

The good news is that there aren't any changes to your code that are required for this. I did some beta-testing with the various SDKs for this version and didn't have to make any changes to my code.

-Dell

Answers (3)

Answers (3)

former_member365641
Participant

GREAT, it works. We updated ALL jar files with the new versions. I also confirm that it's not been necessary to update our code.

Thank you Bharath and Dell!

former_member230921
Active Contributor

is all the .jar files replaced by SP05 latest .jars ?

Joe_Peters
Active Contributor
0 Kudos

I'm not certain that it's causing the error, but try removing cryptojce.jar and jcmFIPS.jar from your classpath.

former_member365641
Participant
0 Kudos

Hi Joe, I tried to remove both but with no success:

java.lang.NoClassDefFoundError: Could not initialize class com.rsa.cryptoj.o.co
at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)
at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)
at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)
at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1158)
at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)
at java.lang.Thread.run(Thread.java:745)

thanks anyway!