java.security.NoSuchAlgorithmException: No such algorithm: RSA/ECB/PKCS1Padding 问题解决
错误日志:无法找到RSA算法,找不到类,类加载器有限制。
2016-09-28 14:52:39.654 [ERROR] com.csii.mcs.ibs.validator.CSIIPinConvertor nP1vkKiwN9YmjVBVLbWe7rROTgM2v8b9eevCpIXPZwK7YXpp2jTq!-685201044!1475045533872 ebankmapp2#1475045559550#24 login decrptPWD failed
java.security.NoSuchAlgorithmException: No such algorithm: RSA/ECB/PKCS1Padding
at javax.crypto.Cipher.getInstance(DashoA13*..) [na:1.6]
at com.csii.pdm.jceproxy.JCEProxy.getCipherInstance(JCEProxy.java:85) [com.csii.pdm.jceproxy_20121011.jar:na]
at com.csii.pe.security.EnDecryptFactory$EnDecryptImpl.deCryptRaw(EnDecryptFactory.java:405) [null:na]
at com.csii.pe.security.EnDecryptFactory$EnDecryptImpl.deCrypt(EnDecryptFactory.java:386) [null:na]
at com.csii.mcs.ibs.validator.CSIIPinConvertor.decryptPWD(CSIIPinConvertor.java:199) [null:na]
at com.csii.mcs.ibs.validator.CSIIPinConvertor.convert(CSIIPinConvertor.java:137) [null:na]
at com.csii.mcs.ibs.validator.PinValidator.validate(PinValidator.java:21) [null:na]
at com.csii.pe.validation.GreedyValidationCommand.styleValidateInternal(GreedyValidationCommand.java:411) [null:na]
at com.csii.pe.validation.GreedyValidationCommand.styleValidate(GreedyValidationCommand.java:320) [null:na]
at com.csii.pe.validation.GreedyValidationCommand.doValidation(GreedyValidationCommand.java:179) [null:na]
at com.csii.pe.validation.GreedyValidationCommand.channelExecute(GreedyValidationCommand.java:92) [null:na]
at com.csii.pe.chain.command.AbstractChannelCommand.execute(AbstractChannelCommand.java:33) [null:na]
at com.csii.pe.chain.ChainImpl.execute(ChainImpl.java:114) [null:na]
at com.csii.pe.core.ServiceBasedCoreController.execute(ServiceBasedCoreController.java:229) [null:na]
at com.csii.pe.channel.http.servlet.MainController.process(MainController.java:127) [null:na]
at com.csii.pe.dynamic.http.MainServlet.process(MainServlet.java:381) [null:na]
at com.csii.pe.dynamic.http.MainServlet.doPost(MainServlet.java:291) [null:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:148) [null:na]
at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:134) [null:na]
at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:63) [null:na]
at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) [null:na]
at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) [null:na]
at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) [null:na]
at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) [null:na]
at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55) [null:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at org.apache.felix.http.proxy.ProxyServlet.service(ProxyServlet.java:60) [org.apache.felix.http.proxy-2.0.4.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at com.csii.pe.dynamic.launch.proxy.ProxyServlet.service(ProxyServlet.java:50) [com.csii.pe.dynamic.launch.proxy_20121011.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG20780171_1036012.jar:10.3.6.0]
at com.csii.pe.dynamic.launch.proxy.FixEncodingFilter.doFilter(FixEncodingFilter.java:59) [com.csii.pe.dynamic.launch.proxy_20121011.jar:na]
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG20780171_1036012.jar:10.3.6.0]
at com.csii.pe.dynamic.filter.bos.RemoteAddrFilter.doFilter(RemoteAddrFilter.java:51) [com.csii.pe.dynamic.launch.proxy_20121011.jar:na]
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [com.bea.core.weblogic.security.identity_1.2.0.0.jar:1.2.0.0]
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.bea.core.weblogic.security.wls_1.0.0.0_6-2-0-0.jar:6.2.0.0]
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263) [BUG20780171_1036012.jar:1.11.0.0]
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) [BUG20780171_1036012.jar:1.11.0.0]
Caused by: java.security.NoSuchAlgorithmException: class configured for Cipher(provider: BC)cannot be found.
at java.security.Provider$Service.getImplClass(Provider.java:1268) [na:1.6.0_45]
at java.security.Provider$Service.newInstance(Provider.java:1220) [na:1.6.0_45]
... 50 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.JCERSACipher$NoPadding
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297) [com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270) [com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64) [com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [na:1.6.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [na:1.6.0_45]
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) [com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43) [com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
at java.security.Provider$Service.getImplClass(Provider.java:1262) [na:1.6.0_45]
... 51 common frames omitted
2016-09-28 14:52:39.660 [DEBUG] com.csii.pe.channel.http.servlet.MainController nP1vkKiwN9YmjVBVLbWe7rROTgM2v8b9eevCpIXPZwK7YXpp2jTq!-685201044!1475045533872 ebankmapp2#1475045559550#24 login process
com.csii.pe.validation.MultiValidationRuntimeException: null
at com.csii.pe.validation.GreedyValidationCommand.channelExecute(GreedyValidationCommand.java:130) [na:na]
at com.csii.pe.chain.command.AbstractChannelCommand.execute(AbstractChannelCommand.java:33) [na:na]
at com.csii.pe.chain.ChainImpl.execute(ChainImpl.java:114) [na:na]
at com.csii.pe.core.ServiceBasedCoreController.execute(ServiceBasedCoreController.java:229) [null:na]
at com.csii.pe.channel.http.servlet.MainController.process(MainController.java:127) [null:na]
at com.csii.pe.dynamic.http.MainServlet.process(MainServlet.java:381) [null:na]
at com.csii.pe.dynamic.http.MainServlet.doPost(MainServlet.java:291) [null:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:148) [null:na]
at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:134) [null:na]
at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:63) [null:na]
at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) [null:na]
at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) [null:na]
at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) [null:na]
at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) [null:na]
at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55) [null:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at org.apache.felix.http.proxy.ProxyServlet.service(ProxyServlet.java:60) [org.apache.felix.http.proxy-2.0.4.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at com.csii.pe.dynamic.launch.proxy.ProxyServlet.service(ProxyServlet.java:50) [com.csii.pe.dynamic.launch.proxy_20121011.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG20780171_1036012.jar:10.3.6.0]
at com.csii.pe.dynamic.launch.proxy.FixEncodingFilter.doFilter(FixEncodingFilter.java:59) [com.csii.pe.dynamic.launch.proxy_20121011.jar:na]
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG20780171_1036012.jar:10.3.6.0]
at com.csii.pe.dynamic.filter.bos.RemoteAddrFilter.doFilter(RemoteAddrFilter.java:51) [com.csii.pe.dynamic.launch.proxy_20121011.jar:na]
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [com.bea.core.weblogic.security.identity_1.2.0.0.jar:1.2.0.0]
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.bea.core.weblogic.security.wls_1.0.0.0_6-2-0-0.jar:6.2.0.0]
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491) [BUG20780171_1036012.jar:10.3.6.0]
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263) [BUG20780171_1036012.jar:1.11.0.0]
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) [BUG20780171_1036012.jar:1.11.0.0]
2016-09-28 14:52:39.677 [DEBUG] com.csii.pe.channel.http.servlet.UrlView /WEB-INF/zh_CN/defaultPublicError.jsp
2016-09-28 14:52:40.463 [DEBUG] com.csii.pe.channel.http.servlet.StreamView {Content=[B@5abffb34, _vTokenName=G49C} [B@5abffb34
2016-09-28 14:55:16.912 [DEBUG] com.csii.pe.channel.http.servlet.StreamView {Content=[B@2fe464f8, _vTokenName=7LK9} [B@2fe464f8
2016-09-28 15:05:30.803 [DEBUG] com.csii.pe.channel.http.SessionListener pe.http.user_is_logout from session:nP1vkKiwN9YmjVBVLbWe7rROTgM2v8b9eevCpIXPZwK7YXpp2jTq!-685201044!1475045533872
2016-09-28 15:26:13.627 [DEBUG] com.csii.pe.channel.http.servlet.StreamView {Content=[B@2a731792, _vTokenName=JK8B} [B@2a731792
首先思考为什么找不到RSA的算法,因为找不到调用的类,找不到该类,那么该类的jar包有没有引入,如果引入了,类加载器为什么加载不到? (OSGI的类加载器以后有时间要深入研究一下)
检查jdk中是否加载类,同时检查jdk的版本。发现与jdk关系不大,因为PWEB与EWEB部署在同一个服务器上,使用的jdk也都是同一个。所以有可能是基础War包里面没有引入。 应该是找不到 BC JCE providor。BC JCE没有注册成功。
看: /opt/weblogic/user_projects/domains/ebankapp1_domain/servers/eweb1/logs
cannot find BC JCE Providor add BC JCE Providor onBind: org.apache.felix.http.base.internal.service.HttpServiceImpl@6d3a3c8e onUnBind: org.apache.felix.http.base.internal.service.HttpServiceImpl@6d3a3c8e weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=[], on ResourceType: ch.qos.logback.classic.jmx.JMXConfigurator Action: unregister, Target: null at weblogic.management.internal.SecurityHelper$IsAccessAllowedPrivilegeAction.wlsRun(SecurityHelper.java:819) at weblogic.management.internal.SecurityHelper$IsAccessAllowedPrivilegeAction.run(SecurityHelper.java:682) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.management.internal.SecurityHelper.isAccessAllowed(SecurityHelper.java:269) at weblogic.management.internal.SecurityHelper.isAccessAllowed(SecurityHelper.java:157) at weblogic.management.mbeanservers.internal.SecurityInterceptor.checkUnregisterSecurity(SecurityInterceptor.java:672) at weblogic.management.mbeanservers.internal.SecurityInterceptor.unregisterMBean(SecurityInterceptor.java:321) at weblogic.management.jmx.mbeanserver.WLSMBeanServer.unregisterMBean(WLSMBeanServer.java:210) at ch.qos.logback.classic.jmx.JMXConfigurator.onStop(JMXConfigurator.java:249) at ch.qos.logback.classic.LoggerContext.fireOnStop(LoggerContext.java:320) at ch.qos.logback.classic.LoggerContext.stop(LoggerContext.java:337) at com.csii.pe.dynamic.adminservice.jmx.SimpleJMXAdminServer.stop(SimpleJMXAdminServer.java:215) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:208) at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:165) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:487) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:462) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:430) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:853) at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.destroyBeans(AbstractOsgiBundleApplicationContext.java:204) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:831) at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.doClose(AbstractOsgiBundleApplicationContext.java:197) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$501(AbstractDelegatedExecutionApplicationContext.java:69) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$2.run(AbstractDelegatedExecutionApplicationContext.java:214) at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.normalClose(AbstractDelegatedExecutionApplicationContext.java:210) at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:374) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.doClose(AbstractDelegatedExecutionApplicationContext.java:236) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:794) at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$1.run(ContextLoaderListener.java:522) at org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution$MonitoredRunnable.run(RunnableTimedExecution.java:60) at org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java:66) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462)
此段启动日志显示该错误为BC无法注册JCE Providor
修改war包
在web.xml中添加以下代码:
将 org.bouncycastle.*,javax.crypto引入
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
