RFR: 8218021: Have jarsigner preserve posix permission attributes

Weijun Wang weijun.wang at oracle.com
Wed Jul 1 02:02:08 UTC 2020


---------------------
src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
@@ -248,7 +248,7 @@ private static X509CRL getCRL(URIName name) throws CertStoreException {
    debug.println("Trying to fetch CRL from DP " + uri);        
    }        

    Event.report("event.crl.check", uri.toString());        
    Event.report(Event.ReporterCategory.CRLCHECK,"event.crl.check", uri.toString());        
 
Please add a whitespace after CRLCHECK.
---------------------
src/java.base/share/classes/sun/security/provider/certpath/OCSP.java
@@ -234,7 +234,7 @@ static OCSPResponse check(List<CertId> certIds, URI responderURI,
    debug.println("connecting to OCSP service at: " + url);        
    }        

    Event.report("event.ocsp.check", url.toString());        
    Event.report(Event.ReporterCategory.CRLCHECK,"event.ocsp.check", url.toString());        
 
White space after CRLCHECK.
--------------------- 
src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSigner.java
    int perms = JUZFA.getPosixPerms(ze);        
    if (!posixPermsDetected && perms != -1) {        
        posixPermsDetected = true;        
        Event.report(Event.ReporterCategory.POSIXPERMS, "true");        
 
The method signature is "report(category, type, values...)". There is no need to define a type or value here but I feel like more normal to call 'report(POSIXPERMS, "detected")' because the 2nd argument is type instead of value.
---------------------
src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java
@@ -1054,7 +1063,7 @@ private void displayMessagesAndResult(boolean isSigning) {
    notYetValidCert || chainNotValidated || hasExpiredCert ||        
    hasUnsignedEntry || signerSelfSigned || (legacyAlg != 0) ||        
    (disabledAlg != 0) || aliasNotInStore || notSignedByAlias ||        
    tsaChainNotValidated || permsDetected ||        
 
I'd prefer move the permsDetected check and the if block for it out of this big block, since it's not a fatal warning and just informational. You can move it into "if (hasExpiringCert....".
---------------------
src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java
@@ -1805,6 +1820,7 @@ void signJar(String jarName, String alias)
        fos.close();        
    }        

    Event.clearReportListener(Event.ReporterCategory.POSIXPERMS);        
 
Maybe in a final block?
---------------------
test/jdk/sun/security/util/Resources/Usages.java
@@ -75,7 +75,7 @@
    "(?m)rb[ \\n]*\\.getString[ \\n]*\\([ \\n]*\"(.*?)\"\\)");        

    static Pattern EVENT_OCSP_CRL = Pattern.compile(        
            "Event\\.report\\(.*,\"(.*?)\",");        
 
If you agree to add a whitespace in the calls in OSCP.java and DistributionFetcher.java, you might want to add a whitespace (or "\s*") here as well.

Thanks,
Max


> On Jun 30, 2020, at 9:51 PM, Seán Coffey <sean.coffey at oracle.com> wrote:
> 
> Thanks Lance.
> 
> During the CSR review, a suggestion was made to have jarsigner preserve such attributes by default. Warnings about these attributes will also be added during signing and verify operations (if detected).
> 
> webrev: https://cr.openjdk.java.net/~coffeys/webrev.8218021.v4/webrev/
> 
> regards,
> Sean.
> 
> On 22/06/2020 17:17, Lance Andersen wrote:
>> HI Sean,
>> 
>> Looks OK based on our exchanges.  Thank you for your time on this one!
>> 
>> Best
>> Lance
>> 
>>> On Jun 22, 2020, at 7:22 AM, Seán Coffey <sean.coffey at oracle.com> wrote:
>>> 
>>> Thanks Lance.
>>> 
>>> I've updated the patch with some extra offline feedback from yourself and Max.
>>> A new warning is printed with use of the new flag. A warning is also printed when file posix permissions are detected on resources being signed. Test updated for that also.
>>> 
>>> https://cr.openjdk.java.net/~coffeys/webrev.8218021.v3/webrev/
>>> 
>>> regards,
>>> Sean.
>>> 
>>> On 12/06/2020 17:05, Lance Andersen wrote:
>>>> Hi Sean,
>>>> 
>>>> I think your changes look fine so all good FMPOV.
>>>> 
>>>> Best
>>>> Lance
>>>> 
>>>>> On Jun 12, 2020, at 6:21 AM, Seán Coffey <sean.coffey at oracle.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I'd like to reboot this jarsigner enhancement request[1]. I've removed the problem references to zip file name extensions. Instead, there's a new JDK implementation specific jarsigner option: -keepposixperms
>>>>> 
>>>>> https://bugs.openjdk.java.net/browse/JDK-8218021
>>>>> https://cr.openjdk.java.net/~coffeys/webrev.8218021.v2/webrev/
>>>>> 
>>>>> regards,
>>>>> Sean.
>>>>> 
>>>>> [1] http://mail.openjdk.java.net/pipermail/security-dev/2020-January/021141.html
>>>>> 
>>>> 
>>>> <oracle_sig_logo.gif>
>>>> 
>>>> Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
>>>> Oracle Java Engineering 
>>>> 1 Network Drive 
>>>> Burlington, MA 01803
>>>> Lance.Andersen at oracle.com
>>>> 
>>>> 
>>>> 
>> 
>> <oracle_sig_logo.gif>
>> 
>> Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
>> Oracle Java Engineering 
>> 1 Network Drive 
>> Burlington, MA 01803
>> Lance.Andersen at oracle.com
>> 
>> 
>> 



More information about the core-libs-dev mailing list