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
public class ClassResolvingObjectInputStream
- extends ObjectInputStream
Enables correct ClassLoader lookup in various environments (e.g. JEE Servers, etc).
- Since:
- 1.2
- See Also:
- SHIRO-334
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 |
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.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ClassResolvingObjectInputStream
public ClassResolvingObjectInputStream(InputStream inputStream)
throws IOException
- Throws:
IOException
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-2016 The Apache Software Foundation. All Rights Reserved.