Hi Daniel,
Thanks for the review and comments...
Webrev updated in place.
On 9/13/2016 6:14 AM, Daniel Fuchs wrote:
Hi Roger,
On 12/09/16 21:42, Roger Riggs wrote:
Please review an update to enable serialization filtering for exported
RMI objects.
Webrev:
http://cr.openjdk.java.net/~rriggs/webrev-rmi-filter-8165261/
Issue:
https://bugs.openjdk.java.net/browse/JDK-8165261
Thanks, Roger
In UnicastRemoteObject.java:
142 * <p>
143 * Exported remote objects receive method invocations from the stubs
144 * as described in the RMI specification. Each invocation's
operation and
145 * parameters are unmarshaled using a custom {@link
java.io.ObjectInputStream}.
146 * If an {@link ObjectInputFilter} is provided and is not {@code
null} when the object
147 * is exported, it is used to filter the parameters as they are
unmarshaled from the stream.
148 * The filter is used for all invocations and all parameters
regardless of
149 * the method being invoked or the parameter values.
150 * If no filter is provided or is {@code null} for the exported
object then the
151 * {@code ObjectInputStream} default filter, if any, is used. The
default filter is
152 * configured with {@link
ObjectInputFilter.Config#setSerialFilter(ObjectInputFilter)
153 * ObjectInputFilter.Config.setSerialFilter}.
Maybe this paragraph should say what happens when the filter
rejects a parameter - or at least hints that there are more
details to be found on the subject in ObjectInputFilter?
It will be reported as any other IOException from ObjectInputStream; I
added:
* If the filter rejects any of the parameters, the {@code
InvalidClassException}
* thrown by {@code ObjectInputStream} is reported as the cause of an
* {@link UnmarshalException}.
381 * @param filter an ObjectInputFilter applied when
deserializing invocation arguments;
382 * may be null
and:
408 * @param filter an ObjectInputFilter applied when
deserializing invocation arguments;
409 * may be null
=> {@link ObjectInputFilter} ... may be {@code null}
fixed.
Thanks, Roger
Otherwise looks good to me!
-- daniel