On Tue, 8 Jun 2021 10:32:49 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> JEP 415: Context-specific Deserialization Filters extends the 
>> deserialization filtering mechanisms with more flexible and customizable 
>> protections against malicious deserialization.  See JEP 415: 
>> https://openjdk.java.net/jeps/415.
>> The `java.io.ObjectInputFilter` and `java.io.ObjectInputStream` classes are 
>> extended with additional
>> configuration mechanisms and filter utilities.
>> 
>> javadoc for `ObjectInputFilter`, `ObjectInputFilter.Config`, and 
>> `ObjectInputStream`:
>>     
>> http://cr.openjdk.java.net/~rriggs/filter-factory/java.base/java/io/ObjectInputFilter.html
>
> Roger Riggs has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Clarified javadoc for rejectUndecidedClass.
>   Added javadoc to describe throwing of ExceptionInInitializerError if the 
> class
>   named by system property jdk.serialFilterFactory is not valid.
>   Added description of jdk.serialFilterFactory to java.security file.

src/java.base/share/classes/java/io/ObjectInputFilter.java line 392:

> 390:      * Returns a filter that invokes a given filter and maps {@code 
> UNDECIDED} to {@code REJECTED}
> 391:      * for classes, with some special cases, and otherwise returns the 
> status.
> 392:      * If the class is not a primitive class and not an array, the 
> status returned is REJECTED.

{@code REJECTED}

src/java.base/share/classes/java/io/ObjectInputFilter.java line 550:

> 548:      * be accessible via the {@linkplain 
> ClassLoader#getSystemClassLoader() application class loader}.
> 549:      * If the filter factory constructor is not invoked successfully, an 
> {@link ExceptionInInitializerError}
> 550:      * is thrown.

Should you also say that later attempts to create an `ObjectInputStream` or to 
call `ObjectInputStream::setObjectInputFilter` will result in an 
`IllegalStateException`?

-------------

PR: https://git.openjdk.java.net/jdk/pull/3996

Reply via email to