RFR 9: 8155760 Implement Serialization Filtering
Roger Riggs
Roger.Riggs at Oracle.com
Wed Sep 14 14:27:33 UTC 2016
Hi Chris,
Thanks for the review and comments...
On 9/14/2016 5:46 AM, Chris Hegarty wrote:
> On 08/09/16 20:09, Roger Riggs wrote:
>> Please review updates to the Serialization filtering API and
>> implementation:
>> - The ObjectInputFilter pattern based filters support matching on
>> module names as well as package and class names.
>> - Rename of system property and java.security property for
>> configurable filters. (jdk.serialFilter)
>> - ObjectInputFilter clarifications about the values passed to the
>> filter
>> - Javadoc editorial improvements
>> - Clarification of SerializablePermission description of targets
>>
>> - More tests
>>
>> Webrev:
>> http://cr.openjdk.java.net/~rriggs/webrev-serial-filter-jdk9-8155760/
>
> This looks very good Roger, just a few comments:
>
> 1) The pattern separator in the java.security file should be ';'
> Right?
> 925 #jdk.serialFilter=pattern,pattern
Good catch, will fix
> ^^^
>
> 2) A question on the expected usage. During the initialization of
> OIS the process-wide filter is cached in an instance field,
> 'serialFilter'. A subsequent change to the process-wide filter
> will not affect the OIS instance. I think this is ok, just
> checking the expected usage, as the example in the OIF class
> description reads the process-wide filter ever time. Maybe
> the example should be changed slightly to not promote this type
> of usage? Maybe just remove the call to getSerialFilter?
The process-wide filter is set-once, so it can't change.
(ObjectInputFilter.setSerialFilter())
The caching in OIS as a final field allows some optimizations;
Client code as in the example could do the same for performance reasons.
>
> 3) Are third-party OIS implementations required, or expected, to
> "callback" to the filter? The spec, of course, would appear to
> allow it, but not require it? Just wondering if this is required,
> or not, as it is not clear to me.
Practically, I don't think it can be required; but is encouraged.
Thanks, Roger
>
> -Chris.
>
>
>> SpecDiff:
>> http://cr.openjdk.java.net/~rriggs/filter-diffs/overview-summary.html
>>
>> Javadoc (subset)
>> http://cr.openjdk.java.net/~rriggs/filter-javadoc/java/io/ObjectInputStream.html
>>
>>
>> http://cr.openjdk.java.net/~rriggs/filter-javadoc/java/io/ObjectInputFilter.html
>>
>>
>> http://cr.openjdk.java.net/~rriggs/filter-javadoc/java/io/SerializablePermission.html
>>
>>
>>
>> Thanks, Roger
>>
>>
>>
More information about the core-libs-dev
mailing list