org.apache.shiro.io
Class ClassResolvingObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.apache.shiro.io.ClassResolvingObjectInputStream
All Implemented Interfaces:
Closeable, DataInput, ObjectInput, ObjectStreamConstants

public class ClassResolvingObjectInputStream
extends ObjectInputStream

Enables correct ClassLoader lookup in various environments (e.g. JEE Servers, etc).

Since:
1.2
See Also:
SHIRO-334

Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectInputStream
ObjectInputStream.GetField
 
Field Summary
 
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
 
Constructor Summary
ClassResolvingObjectInputStream(InputStream inputStream)
           
 
Method Summary
protected  Class<?> resolveClass(ObjectStreamClass osc)
          Resolves an ObjectStreamClass by delegating to Shiro's ClassUtils.forName(String) utility method, which is known to work in all ClassLoader environments.
 
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, resolveProxyClass, skipBytes
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.io.ObjectInput
read, skip
 

Constructor Detail

ClassResolvingObjectInputStream

public ClassResolvingObjectInputStream(InputStream inputStream)
                                throws IOException
Throws:
IOException
Method Detail

resolveClass

protected Class<?> resolveClass(ObjectStreamClass osc)
                         throws IOException,
                                ClassNotFoundException
Resolves an ObjectStreamClass by delegating to Shiro's ClassUtils.forName(String) utility method, which is known to work in all ClassLoader environments.

Overrides:
resolveClass in class ObjectInputStream
Parameters:
osc - the ObjectStreamClass to resolve the class name.
Returns:
the discovered class
Throws:
IOException - never - declaration retained for subclass consistency
ClassNotFoundException - if the class could not be found in any known ClassLoader


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.