[Security & JAAS/JBoss] - BaseCertLoginModule (and CertRolesLoginModule) implementatio
by kosulin
The problem is in how it looks for certificates (the alias must match the subject). In production we can have 2 valid client certificates with identical "CU...C" sequence just because the first one is going to expire soon (but is still valid), and the client have sent us a new one which is supposed to replace the old one gracefully. The only way to do this with current JBoss implementation is to delete the old certificate and import the new one, but this requires synchronization with client side which is impossible in real life (not mentioning we use a load balanced cluster which we usually restart sequentially, not concurrently, to achieve 100% availability). Therefore we need a grace period when the server should accept and authenticate both certificates. The easy way would be to rewrite implementation to search for proper certificate in all aliases which might be slower a bit, but much more easy to handle
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4171613#4171613
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4171613
17 years, 8 months
[JBoss Cache: Core Edition] - ClassNotFoundException during deserialisation
by mbrade
Hello
I want to use JBoss Cache to store the result of different method calls (The objects are all serializable). The results and the method-data (method-name, class-name, parameters) are stored in a database.
I created some test classes with test methods which return different objects. The storage in the memory cache works fine.
When I activate the jdbc config it writes the method data into the database. But when I try to write the result into the same node but under a different key. I get the following Exception:
anonymous wrote :
| org.jboss.cache.CacheException: java.lang.Exception: Unable to load to deserialize result:
| at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:227)
| at org.jboss.cache.invocation.CacheInvocationDelegate.getNode(CacheInvocationDelegate.java:420)
| at org.jboss.cache.invocation.CacheInvocationDelegate.getNode(CacheInvocationDelegate.java:61)
| at de.arvatomobile.bdev.cache.methodresultcacher.MethodResultCacheManager.executeMethod(MethodResultCacheManager.java:104)
| at de.arvatomobile.bdev.cache.methodresultcacher.TestLock.main(TestLock.java:60)
| Caused by: java.lang.Exception: Unable to load to deserialize result:
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.loadNode(AdjListJDBCCacheLoader.java:378)
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.exists(AdjListJDBCCacheLoader.java:292)
| at org.jboss.cache.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:296)
| at org.jboss.cache.interceptors.CacheLoaderInterceptor.visitGetNodeCommand(CacheLoaderInterceptor.java:147)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
| at org.jboss.cache.interceptors.PessimisticLockInterceptor.handleGetNodeCommand(PessimisticLockInterceptor.java:317)
| at org.jboss.cache.interceptors.base.PostProcessingCommandInterceptor.visitGetNodeCommand(PostProcessingCommandInterceptor.java:257)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
| at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
| at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:94)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
| at org.jboss.cache.interceptors.MarshalledValueInterceptor.visitGetNodeCommand(MarshalledValueInterceptor.java:93)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
| at org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:266)
| at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:253)
| at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:94)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
| at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
| at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:94)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
| at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:155)
| at org.jboss.cache.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:108)
| at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:94)
| at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
| at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:215)
| ... 4 more
| Caused by: java.lang.ClassNotFoundException: int
| at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
| at java.security.AccessController.doPrivileged(Native Method)
| at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Class.java:247)
| at org.jboss.util.stream.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:60)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1462)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1312)
| at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
| at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
| at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
| 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.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:549)
| at org.jboss.cache.marshall.CacheMarshaller200.populateFromStream(CacheMarshaller200.java:759)
| at org.jboss.cache.marshall.CacheMarshaller200.unmarshallHashMap(CacheMarshaller200.java:722)
| at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:580)
| at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:512)
| at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStream(CacheMarshaller200.java:140)
| at org.jboss.cache.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:189)
| at org.jboss.cache.marshall.VersionAwareMarshaller.objectFromStream(VersionAwareMarshaller.java:223)
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.unmarshall(AdjListJDBCCacheLoader.java:681)
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.loadNode(AdjListJDBCCacheLoader.java:374)
| ... 34 more
|
I found out that there is an old bug in suns ObjectInputStream.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4171142
Is there something I can configure to fix that? Or do I have to write my own Marshaller?
Thanks
Marco
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4171608#4171608
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4171608
17 years, 8 months