Package org.apache.shiro.io
Class ClassResolvingObjectInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.ObjectInputStream
-
- org.apache.shiro.io.ClassResolvingObjectInputStream
-
- All Implemented Interfaces:
Closeable
,DataInput
,ObjectInput
,ObjectStreamConstants
,AutoCloseable
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, SERIAL_FILTER_PERMISSION, 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
Constructors Constructor Description ClassResolvingObjectInputStream(InputStream inputStream)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Class<?>
resolveClass(ObjectStreamClass osc)
Resolves anObjectStreamClass
by delegating to Shiro'sClassUtils.forName(String)
utility method, which is known to work in all ClassLoader environments.-
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, 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, setObjectInputFilter, skipBytes
-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
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 anObjectStreamClass
by delegating to Shiro'sClassUtils.forName(String)
utility method, which is known to work in all ClassLoader environments.- Overrides:
resolveClass
in classObjectInputStream
- Parameters:
osc
- the ObjectStreamClass to resolve the class name.- Returns:
- the discovered class
- Throws:
IOException
- never - declaration retained for subclass consistencyClassNotFoundException
- if the class could not be found in any known ClassLoader
-
-