@Override
    protected Class<?> resolveClass(ObjectStreamClass osc) throws IOException, ClassNotFoundException {
        try {
            return ClassUtils.forName(osc.getName());
        } catch (UnknownClassException e) {
            throw new ClassNotFoundException("Unable to load ObjectStreamClass [" + osc + "]: ", e);
        }
    }
Resolves an {@link ObjectStreamClass} by delegating to Shiro's
{@link ClassUtils#forName(String)} utility method, which is known to work in all ClassLoader environments.

@param osc the ObjectStreamClass to resolve the class name.
@return the discovered class
@throws IOException            never - declaration retained for subclass consistency
@throws ClassNotFoundException if the class could not be found in any known ClassLoader
lang/src/main/java/org/apache/shiro/lang/io/ClassResolvingObjectInputStream.java