Code Review Request: running signed modules with SecurityManager

Sean Mullan sean.mullan at oracle.com
Fri Jun 4 12:22:46 PDT 2010


On 6/4/10 2:31 PM, mark.reinhold at oracle.com wrote:
>> Date: Tue, 01 Jun 2010 09:50:21 -0400
>> From: sean.mullan at oracle.com
>
>> I posted a new webrev addressing the comments I have received so far:
>>
>> http://cr.openjdk.java.net/~mullan/jigsaw/webrevs/SecurityManager2/webrev.01/
>
> Mostly looks good, but I'd like to see a few changes before you push.
>
> SimpleLibrary.java
>
>    [55] Is there a reason to put signer.ser in its own subdirectory?

Just trying to think ahead - we'll likely want to store additional security 
information such as the module's granted permissions, and potentially other 
certificate related information such as CRLs.

> If not, please change that.  Also, please name it "signer", without the
>    extension.

Ok.

>    [522] Serialization is a pretty heavyweight (and brittle) solution
>    here.  I can live with it for now, but in a future changeset please
>    modify this code to store and load CodeSigners using the existing
>    conventions for metadata files.

Ok, I will address this in a subsequent changeset.

>
>    [540] Casts should not be separated from the expression being cast,
>    i.e., (CodeSigner)ois.readObject(), not (CodeSigner) ois.readObject() .

Ok.

> Loader.java
>
>    The codeSourceForName map is awkward.  Please add a codeSource property
>    to java.lang.reflect.Module instead.  That will obviate the need for
>    this map and also make the CodeSource available for other uses.

Sounds good.

>    [196] If there's no CodeSigner then shouldn't you pass null as the last
>    argument to defineModule, rather than new CodeSource(null, null)?

No, I don't believe so. There is a subtle difference. A CodeSource of (null, 
null) will still be granted permissions where the URL/certs don't matter, ex the 
permissions of the sandbox policy. But a null CodeSource won't be granted any 
permissions.

> ModuleFileFormat.java
>
>    [831] Knowledge of the format of the signer file should be encapsulated
>    in one place.  When installing a module file the SimpleLibrary.install
>    method already gets the signers, by invoking Reader.verifySignature,
>    so it'd be better to store the signers at that point rather than in the
>    module-file reader.  Moving this code now will also make it possible to
>    eliminate serialization later.

Yes, good point.

I'll try to post an updated webrev later today.

Thanks,
Sean



More information about the jigsaw-dev mailing list