Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JBoss远程客户端凭据客户端凭据转储_Java_Jboss_Migration_Jboss6.x - Fatal编程技术网

Java JBoss远程客户端凭据客户端凭据转储

Java JBoss远程客户端凭据客户端凭据转储,java,jboss,migration,jboss6.x,Java,Jboss,Migration,Jboss6.x,我有一个在JBoss4.0.3上运行良好的JavaEE应用程序,但我们需要将其移植到JBoss6。 (存在针对4.0.x的安全问题)[此应用程序在远离internet的LAN上运行,但必须解决安全问题。] 该应用程序使用EJB和Java客户端 以前使用LoginContext登录的客户端现在使用LoginContext和SecurityClient。它们被保存在一个单独的客户端中,并对JAAS回调做出响应 成功调用一段时间后,客户端凭据将消失。(为了使原木足够小而剪断) 我在其他日志文件中看到与

我有一个在JBoss4.0.3上运行良好的JavaEE应用程序,但我们需要将其移植到JBoss6。 (存在针对4.0.x的安全问题)[此应用程序在远离internet的LAN上运行,但必须解决安全问题。]

该应用程序使用EJB和Java客户端

以前使用LoginContext登录的客户端现在使用LoginContext和SecurityClient。它们被保存在一个单独的客户端中,并对JAAS回调做出响应

成功调用一段时间后,客户端凭据将消失。(为了使原木足够小而剪断)

我在其他日志文件中看到与服务器的连接已重新连接,之后没有安全凭据。我怀疑这个问题可能是某种超时

Tue May 17 14:31:35 EST 2011: Successfully set the login.config resource property
TRACE - Security domain: null
TRACE - Enabling restore-login-identity mode
TRACE - Begin login
TRACE - Obtained login: Foo_user, credential.class: [C
TRACE - End login
TRACE - commit, subject=Subject:

DEBUG - Using ThreadLocal: false
TRACE - Security domain: null
TRACE - Enabling restore-login-identity mode
TRACE - Begin login
TRACE - Obtained login: Foo_user, credential.class: [C
TRACE - End login
TRACE - commit, subject=Subject:

Tue May 17 14:31:40 EST 2011: User: Foo_user credentials established.
DEBUG - createSocket, hostAddr: localhost/127.0.0.1, port: 1099, localAddr: null, localPort: 0, timeout: 0
DEBUG - Remoting version: 2.5.3 (Flounder)
DEBUG - Client[17459938:a001p-17x5i6-gnscippf-1-gnscipq9-3].connect(null)
TRACE - Client[17459938:a001p-17x5i6-gnscippf-1-gnscipq9-3]: metadata = null
TRACE - Mapping properties for bean: SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446]
TRACE - Property editor found for: marshaller, editor: java.beans.PropertyDescriptor@c4909136, setter: public void org.jboss.remoting.MicroRemoteClientInvoker.setMarshaller(org.jboss.remoting.marshal.Marshaller)
TRACE - Failed to find property editor for: marshaller
TRACE - Failed to write property
java.lang.NullPointerException
    at org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(PropertyEditors.java:377)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.mapJavaBeanProperties(MicroSocketClientInvoker.java:1359)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.setup(MicroSocketClientInvoker.java:533)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.<init>(MicroSocketClientInvoker.java:292)
    at org.jboss.remoting.transport.socket.SocketClientInvoker.<init>(SocketClientInvoker.java:78)
    at org.jboss.remoting.transport.socket.TransportClientFactory.createClientInvoker(TransportClientFactory.java:39)
    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.jboss.remoting.InvokerRegistry.loadClientInvoker(InvokerRegistry.java:460)
    at org.jboss.remoting.InvokerRegistry.createClientInvoker(InvokerRegistry.java:359)
    at org.jboss.remoting.Client$4.run(Client.java:651)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.remoting.Client.connect(Client.java:647)
    at org.jboss.remoting.Client.connect(Client.java:595)
    at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.init(UnifiedInvokerProxy.java:98)
    at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.readExternal(UnifiedInvokerProxy.java:252)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at java.util.HashMap.readObject(HashMap.java:1030)
    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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at org.jboss.proxy.ClientContainer.readExternal(ClientContainer.java:158)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
    at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:771)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at au.com.FooCorp.util.servicelocator.ServiceLocator.getEnterpriseObject(ServiceLocator.java:118)
    at au.com.FooCorp.Foo.appclient.main.FrontControllerManager.createController(FrontControllerManager.java:75)
    at au.com.FooCorp.Foo.appclient.main.FrontControllerManager.getRealController(FrontControllerManager.java:164)
    at au.com.FooCorp.Foo.appclient.Launcher.run(Launcher.java:382)
    at au.com.FooCorp.Foo.appclient.Launcher.main(Launcher.java:417)
DEBUG - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] setting enableTcpNodelay to true
DEBUG - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] constructed
DEBUG - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] setting enableTcpNodelay to true
DEBUG - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] connecting
DEBUG - Creating semaphore with size 50
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] added new pool ([]) as ServerAddress[127.0.0.1:4446, enableTcpNodelay timeout 1800000 ms, maxPoolSize=50]
DEBUG - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] connected
TRACE - Client[17459938:a001p-17x5i6-gnscippf-1-gnscipq9-3] enableLease: false
DEBUG - Client[17459938:a001p-17x5i6-gnscippf-1-gnscipq9-3] connected to InvokerLocator [socket://127.0.0.1:4446/?dataType=invocation&enableTcpNodelay=true&marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller]
DEBUG - Client[17459938:a001p-17x5i6-gnscippf-1-gnscipq9-3] is connected
Tue May 17 14:31:40 EST 2011: createController(): created HOME for front controller
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446](1) invoking InvocationRequest[3bc257, INVOKER, org.jboss.invocation.Invocation@153f67e]
TRACE - Could not find marshaller for data type 'invocation'.  Object in collection is null
TRACE - Could not look up marshaller by data type ('invocation').  Will try to load dynamically.
TRACE - Found marshaller by loading locally.
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] retryCount: 0
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] obtained semaphore: 49
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] creating socket 
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] created socket: Socket[addr=/127.0.0.1,port=4446,localport=1898]
TRACE - constructing org.jboss.remoting.transport.socket.ClientSocketWrapper instance for Socket[addr=/127.0.0.1,port=4446,localport=1898], using timeout 1800000
TRACE - ClientSocketWrapper[Socket[addr=/127.0.0.1,port=4446,localport=1898].949f69] setting timeout to 1800000
TRACE - ClientSocketWrapper[Socket[addr=/127.0.0.1,port=4446,localport=1898].949f69] getting output stream from Socket[addr=/127.0.0.1,port=4446,localport=1898], org.jboss.invocation.unified.marshall.InvocationMarshaller@16dadf9
TRACE - Creating ObjectOutputStream
TRACE - ClientSocketWrapper[Socket[addr=/127.0.0.1,port=4446,localport=1898].949f69] getting input stream from Socket[addr=/127.0.0.1,port=4446,localport=1898], org.jboss.invocation.unified.marshall.InvocationUnMarshaller@1b8d6f7
TRACE - Creating ObjectInputStreamWithClassLoader
TRACE - ClientSocketWrapper[Socket[addr=/127.0.0.1,port=4446,localport=1898].949f69] setting timeout to 1800000
TRACE - reset timeout: 1800000
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] got socketWrapper: ClientSocketWrapper[Socket[addr=/127.0.0.1,port=4446,localport=1898].949f69]
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446]got outputStream: org.jboss.remoting.serialization.impl.java.ClearableObjectOutputStream@1bf3d87
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] writing version
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] writing version 22 on output stream
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] wrote version
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] writing invocation to marshaller
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] done writing invocation to marshaller
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] reading version from input stream
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] read version 22 from input stream
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] reading response from unmarshaller
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] returned ClientSocketWrapper[Socket[addr=/127.0.0.1,port=4446,localport=1898].949f69] to pool
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] released semaphore: 50
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] received response InvocationResponse[9be79a, java.rmi.MarshalledObject@2bf70148]
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] received InvocationResponse so going to return response's return value of java.rmi.MarshalledObject@2bf70148
DEBUG - Client[26980954:a001p-17x5i6-gnscippf-1-gnsciq4g-5].connect(null)
TRACE - Client[26980954:a001p-17x5i6-gnscippf-1-gnsciq4g-5]: metadata = null
TRACE - Found and returning cached client invoker (SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446])
TRACE - Client[26980954:a001p-17x5i6-gnscippf-1-gnsciq4g-5] enableLease: false
DEBUG - Client[26980954:a001p-17x5i6-gnscippf-1-gnsciq4g-5] connected to InvokerLocator [socket://127.0.0.1:4446/?dataType=invocation&enableTcpNodelay=true&marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller]
DEBUG - Client[26980954:a001p-17x5i6-gnscippf-1-gnsciq4g-5] is connected
proxy created
Tue May 17 14:31:41 EST 2011: createController(): FrontController EJB has been created
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446](1) invoking InvocationRequest[100ebec, INVOKER, org.jboss.invocation.Invocation@180f96c]
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] retryCount: 0
TRACE - SocketClientInvoker[1bb60c3, socket://127.0.0.1:4446] obtained semaphore: 49
TRACE - checking open connection

简短回答:客户端安全关联在JBoss中是线程本地的,为5或更高

在JBoss5.x及更高版本中,这是一个新事物

默认情况下,我可怜的多线程客户端的安全关联不是跨线程共享的。 对auth.cofig文件的此更改将修复它

我可以将我的应用程序代码还原为“普通的旧”JAAS登录,而不必使用JBossAPI

auth.config文件

foo-application {
       // jBoss LoginModule
       org.jboss.security.ClientLoginModule required
    multi-threaded=false;
};

谢谢这家伙在4.0.3->AS6.0升级后追我
foo-application {
       // jBoss LoginModule
       org.jboss.security.ClientLoginModule required
    multi-threaded=false;
};