当前位置: 首页 > 面试题库 >

Solaris JMS Client连接到Weblogic 11g t3s的安全性问题

商辰钊
2023-03-14
问题内容

当我尝试在Solaris Server中连接Weblogic t3s协议时,它显示此错误:

java.lang.IllegalStateException: Not enough cryptography available to enable a cipher suite!
        at com.certicom.tls.interfaceimpl.TLSSystem.resetCipherSuiteSupport(Unknown Source)
        at com.certicom.tls.interfaceimpl.TLSSystem.setCertificateSupport(Unknown Source)
        at com.certicom.tls.interfaceimpl.TLSSystem.<init>(Unknown Source)
        at com.certicom.tls.interfaceimpl.TLSSystem.<init>(Unknown Source)
        at com.certicom.net.ssl.SSLContext.<init>(Unknown Source)
        at com.bea.sslplus.CerticomSSLContext.<init>(Unknown Source)
        at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at weblogic.security.utils.SSLSetup.getSSLDelegateInstance(SSLSetup.java:122)
        at weblogic.security.utils.SSLContextWrapper.<init>(SSLContextWrapper.java:48)
        at weblogic.security.utils.SSLContextWrapper.getInstance(SSLContextWrapper.java:43)
        at weblogic.security.utils.SSLSetup.getSSLContext(SSLSetup.java:238)
        at weblogic.security.SSL.SSLClientInfo.getSSLSocketFactory(SSLClientInfo.java:101)
        at weblogic.socket.ChannelSSLSocketFactory.getSocketFactory(ChannelSSLSocketFactory.java:170)
        at weblogic.socket.ChannelSSLSocketFactory.createSocket(ChannelSSLSocketFactory.java:77)
        at weblogic.socket.ChannelSSLSocketFactory.createSocket(ChannelSSLSocketFactory.java:114)
        at weblogic.socket.BaseAbstractMuxableSocket.createSocket(BaseAbstractMuxableSocket.java:133)
        at weblogic.rjvm.t3.MuxableSocketT3.newSocketWithRetry(MuxableSocketT3.java:206)
        at weblogic.rjvm.t3.MuxableSocketT3.connect(MuxableSocketT3.java:375)
        at weblogic.rjvm.t3.ConnectionFactoryT3S.createConnection(ConnectionFactoryT3S.java:34)
        at weblogic.rjvm.ConnectionManager.createConnection(ConnectionManager.java:1773)
        at weblogic.rjvm.ConnectionManager.findOrCreateConnection(ConnectionManager.java:1416)
        at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:437)
        at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:315)
        at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:251)
        at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:194)
        at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
        at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
        at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
        at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
        at weblogic.jndi.WLInitialContextFactoryDelegate$1.run(WLInitialContextFactoryDelegate.java:344)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
        at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:339)
        at weblogic.jndi.Environment.getContext(Environment.java:315)
        at weblogic.jndi.Environment.getContext(Environment.java:285)
        at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)

我定义了以下参数:

-Djava.protocol.handler.pkgs=weblogic.net -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.TrustKeyStore=CustomTrust -Dweblogic.security.CustomTrustKeyStoreType=JKS -Dweblogic.security.CustomTrustKeyStoreFileName=keystore -Dweblogic.security.CustomTrustKeyStorePassPhrase=passphrase -Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true

我该如何解决?Windows中使用相同的源和相同的参数。

谢谢。


问题答案:

该解决方案是在当天晚些时候推出的,但适用于其他有相同问题的解决方案。

显然,将webserviceclient + ssl.jar添加到类路径的公认解决方案是可行的,因为WebLogic Full Client-
wlfullclient.jar在其MANIFEST.MF文件中引用了其他JAR。添加Web服务客户端JAR可以解决此问题,因为使用SSL /
TLS时,它似乎具有客户端正确操作所需的最少类集。当在不同目录中创建wlfullclient.jar和wlcipher.jar的副本并将其添加到类路径时,通常会遇到该错误。然后,JVM无法从MANIFEST文件中引用的JAR中加载其他相关类。

实际的解决方案是将 WL_HOME \ server \
lib目录中生成的wlfullclient.jar添加到CLASSPATH。然后,所有其他依赖的JAR都将通过适当的类加载器进行拾取,因为清单是通过相对目录路径引用这些JAR的。



 类似资料:
  • 问题内容: 我刚开始使用Java ScriptEngine对我的应用程序进行少量扩展,然后我注意到可以导入脚本中的所有Java类并不受限制地使用它们。有没有一种方法可以指定脚本可以使用的类?我不希望他们做类似的事情 问题答案: 好了,您似乎需要学习Java SecurityManager。这是一个很大的话题,如果您无法使它适合您,则可能需要阅读它,然后发布一个更具体的问题。

  • 我正在用Spring-boot(在http://localhost:8080上)和angular(在http://localhost:80上)构建一个应用程序。 如果我输入了正确的密码,http响应代码(我可以在Chrome控制台中看到)是,但我仍然到达块(带有error.status=-1),并且我可以在控制台中看到以下错误消息: XMLHttpRequest无法加载http://localho

  • 是否有其他方法可以为JBoss上的XA连接设置集成安全性,或者在设置xa-datasource-property时告诉它发送一个布尔值? 要再现此行为: a)在JBoss AS配置\standalone\standalone.xml中,向JNDI添加一个新的xa-datasource: 执行此代码将导致一个异常,该异常指出:

  • 我想在由安全kafka集群的kafka主题支持的Flink SQL表上执行一个查询。我能够以编程方式执行查询,但无法通过Flink SQL客户端执行。我不知道如何通过Flink SQL客户端传递JAAS配置()和其他系统属性。 FlinkSQL以编程方式查询 这很好。 通过SQL客户端Flink SQL查询 运行此命令将导致以下错误。 中没有任何内容,除了以下注释 SQL客户端运行命令 Flink

  • 我正在java应用程序中使用Jetty 9.4.18库编写WebSocket客户端。 我对WebSockets非常陌生,所以我开始使用Jetty文档中的两个示例类进行测试,连接到echo。websocket。组织机构 当我在没有SSL的情况下连接时,测试运行正常,但是如果连接到时失败 我总是遇到同样的异常: 看起来服务器在没有响应握手请求的情况下关闭。 我知道SslContextFactory,但

  • [Standalone@localhost:9990/]/subsystem=elytron/filesystem-realm=proxyrealm:add(path=proxy-realm-users,relative-to=jboss.server.config.dir) {“结果”=>“成功”} [standalone@localhost:9990/]/subsystem=elytron/f