Looks better. One question: the bug description mentions *signed* JARs. Will it be covered?
Thanks Max > On Dec 22, 2015, at 2:17 PM, Sibabrata Sahoo <sibabrata.sa...@oracle.com> > wrote: > > Hi Max/Mandy, > > Here is the updated webrev: > http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.05/ > > I tried to address all the comments bellow. The major change includes > abstracting the common behavior to ModularTest.java and extend the rest by > each specific test. i.e. SecurityProviderModularTest and > JaasModularClientTest. > > Thanks, > Siba > > -----Original Message----- > From: Wang Weijun > Sent: Monday, December 21, 2015 7:20 AM > To: Sibabrata Sahoo > Cc: Mandy Chung; Valerie Peng; jigsaw-...@openjdk.java.net; > security-dev@openjdk.java.net > Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party security > providers if they are in signed/unsigned modular JARs > > Tests are good. Several comments: > > 1. Try run something like "hg mv -A" to let Mercurial knows that you are > renaming files (SecurityUtils.java and those in login/modules/src) instead of > removing some old and creating some new. The current webrev does not show > this. > > 2. It's not a good practice extending a class just to use its static > fields/methods. Instead, make the util class final. > > public class JaasModularClientTest extends SecurityUtils > public class SecurityProviderModularTest extends SecurityUtils > > In fact, if you do find similarities between SecurityProviderModularTest and > JaasModularClientTest, try abstract them into a ModularTest class. > > 3. Please add enough comments to SecurityUtils since it will be reused. For > example, move the descriptions of EXPLICIT, AUTO and UNNAMED from test > @summary to definition of enum MODULE_TYPE. > > Thanks > Max > > >> On Dec 20, 2015, at 2:10 PM, Sibabrata Sahoo <sibabrata.sa...@oracle.com> >> wrote: >> >> Hi Mandy/Max, >> >> Here is the updated webrev with very minor change over previous: >> http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.04/ >> >> Thanks >> Siba >> >> -----Original Message----- >> From: Sibabrata Sahoo >> Sent: Sunday, December 20, 2015 1:34 AM >> To: Mandy Chung; Weijun Wang >> Cc: Valerie Peng; jigsaw-...@openjdk.java.net; >> security-dev@openjdk.java.net >> Subject: RE: [9] RFR:8130360: Add tests to verify 3rd party security >> providers if they are in signed/unsigned modular JARs >> >> Hi Mandy/Max, >> >> Please review the updated webrev: >> http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.03/ >> >> "3rd party security providers" Test change includes: >> - Test are converted to use TestNG framework. >> - java/security/modules/JigsawSecurityUtils.java, renamed to >> "SecurityUtils.java". Proper care required while pushing the change because >> "JigsawSecurityUtils.java" is an existing file in JAKE repository. >> - Common reusable operations moved to "SecurityUtils.java" >> - All the following comments associated. >> >> >> Based on the recent comments, I also did some changes to the "JAAS Modular >> test" because both test are very similar to each other. The change includes: >> - Flat folder structure. It places the Test as well as all its dependency in >> a single folder. i.e. "javax/security/auth/login/modules". That also means >> "javax/security/auth/login/modules/src/" and all its subfolders need to be >> removed. >> - Test converted to use TestNG framework. >> >> Thanks, >> Siba >> >> -----Original Message----- >> From: Mandy Chung >> Sent: Wednesday, December 09, 2015 11:55 PM >> To: Sibabrata Sahoo >> Cc: Valerie Peng; jigsaw-...@openjdk.java.net; >> security-dev@openjdk.java.net >> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party security >> providers if they are in signed/unsigned modular JARs >> >> Some high-level comment: >> 1. I suggest to rename JigsawSecurityUtils.java to SecurityUtils.java. The >> Jigsaw prefix is not needed. >> 2. SecurityProviderModularTest does the setup and launch the test with a set >> of different settings. I suggest to convert it to TestNG and you can >> reference the existing test/jdk/jigsaw tests which are a driver test that >> does the compilation and setup with @BeforeTest and @Test for each run test >> together with @DataProvider. [1] is a simple test for you to get started. >> >> Some comments on JigsawSecurityUtils.java: >> 71 Arrays.asList(options).stream().forEach(o -> command.append(SPACE >> + o)); >> >> this can be replaced with >> Arrays.stream(options).collect(Collectors.joining(SPACE)); >> >> 111 System.out.println(String.format( >> >> You can do: System.out.format(….) instead; >> >> Mandy >> [1] >> http://hg.openjdk.java.net/jigsaw/jake/jdk/file/c1d583efa466/test/jdk/ >> jigsaw/reflect/Proxy/ProxyTest.java >> >>> On Dec 9, 2015, at 10:02 AM, Sibabrata Sahoo <sibabrata.sa...@oracle.com> >>> wrote: >>> >>> Hi Valerie, >>> >>> Here is the updated webrev: >>> http://cr.openjdk.java.net/~ntv/siba/webrev.00/ >>> >>> Changes applied as per previous comments. >>> - File names are modified and do not include the term JCE. >>> - Source folder structure is flat now and all belongs to >>> "java/security/Provider" folder. >>> - Sign jar functionality removed. >>> >>> Thanks, >>> Siba >>> >>> -----Original Message----- >>> From: Valerie Peng >>> Sent: Wednesday, December 09, 2015 5:37 AM >>> To: Sibabrata Sahoo >>> Cc: jigsaw-...@openjdk.java.net; security-dev@openjdk.java.net; Alan >>> Bateman >>> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party security >>> providers if they are in signed/unsigned modular JARs >>> >>> Hi Siba, >>> >>> Here are some nits: >>> >>> I think it's somewhat misleading to use the term JCE here as what you are >>> testing here is just security provider loading. JCE is more about security >>> providers supporting export-controlled services/algorithms. >>> Since your provider is just an empty one, I don't think u need to sign it >>> (again, it's only for JCE providers). >>> You can remove a lot of code as a result. >>> Also, your directory seems a bit deep, e.g. >>> modules/src/jceprovidermodule/provider/TestJCEProvider.java vs >>> modules/src/jceclientmodule/provider/TestJCEProvider.java. Can all of these >>> files be under the same directory instead of spreading over several level >>> of subdirectories? The file names are different enough to tell which is >>> which. Other regression tests for provider loading functionality are under >>> test/java/security/Provider. Easier to find this way. >>> >>> Can you please make the appropriate changes, e.g. don't use the term JCE, >>> get rid of the signing, and simplify the directory structure if possible? >>> >>> Thanks, >>> Valerie >>> >>> On 12/8/2015 2:04 PM, Valerie Peng wrote: >>>> Right, that'd be my expectation as well. Sounds like everything works. >>>> I will change to look at your latest webrev. >>>> Valerie >>>> >>>> On 12/8/2015 6:09 AM, Sibabrata Sahoo wrote: >>>>> Hi Valerie, >>>>> >>>>> Here is the updated webrev: >>>>> http://cr.openjdk.java.net/~ralexander/8130360/webrev.00/ >>>>> >>>>> Now the modular behavior for the test works as per expectation >>>>> through JAKE build with the following condition. >>>>> If the provider jar is available under ModulePath then the >>>>> "java.security" file should have the provider configuration entry >>>>> as ProviderName while in case of ClassPath the entry should hold >>>>> the full class name. >>>>> >>>>> Thanks, >>>>> Siba >>>>> >>>>> -----Original Message----- >>>>> From: Valerie Peng >>>>> Sent: Tuesday, December 08, 2015 4:46 AM >>>>> To: Sibabrata Sahoo >>>>> Cc: Alan Bateman; security-dev@openjdk.java.net; >>>>> jigsaw-...@openjdk.java.net >>>>> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party >>>>> security providers if they are in signed/unsigned modular JARs >>>>> >>>>> Siba, >>>>> >>>>> I have just started to review this webrev and not done yet. >>>>> As for your question, the java.security file in OpenJDK9 still uses >>>>> the provider class names instead of provider names. Are you talking >>>>> about the java.security file in Jigsaw? Which build (OpenJDK or >>>>> Jigsaw) have you tested against. I am pretty sure that I tested the >>>>> 3rd party provider on classpath setting when I worked on the >>>>> 7191662 changes. >>>>> >>>>> Supposedly, if the jar files are available on class path, then you >>>>> should specify its full *class name* in the java.security file for >>>>> it to be instantiated. Otherwise, how would it find the class? Only >>>>> the classes discovered by ServiceLoader can be identified using the >>>>> provider name (which is different from the class name referred >>>>> above). So, in your scenario, that would be >>>>> "provider.TestJCEProvider" instead of "TEST". >>>>> >>>>> If you still run into problems, try enable the java security debug >>>>> flag and u should get a good idea why it isn't loaded. Let me know >>>>> if you still have questions. >>>>> >>>>> Thanks, >>>>> Valerie >>>>> >>>>> On 11/30/2015 6:47 AM, Sibabrata Sahoo wrote: >>>>>> I would like to know more about this. As far, I can see the >>>>>> "java.security" provider configuration available with JDK9, it >>>>>> holds provider names instead of provider class names. In that case >>>>>> how it resolve the fall back? >>>>>> >>>>>> Thanks, >>>>>> Siba >>>>>> >>>>>> -----Original Message----- >>>>>> From: Alan Bateman >>>>>> Sent: Monday, November 30, 2015 4:54 PM >>>>>> To: Sibabrata Sahoo; security-dev@openjdk.java.net; >>>>>> jigsaw-...@openjdk.java.net >>>>>> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party >>>>>> security providers if they are in signed/unsigned modular JARs >>>>>> >>>>>> On 30/11/2015 11:13, Sibabrata Sahoo wrote: >>>>>>> Here is the updated webrev: >>>>>>> http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.02/ >>>>>>> >>>>>>> I have one question: >>>>>>> What should be the behavior when the older version of 3rd party >>>>>>> JCE provider jar file(without service descriptor >>>>>>> "META-INF/services/*"& working with<= JDK8) configured by >>>>>>> "java.security" file, will be place in CLASS_PATH, running >>>>>>> through >>>>>>> JDK9 and the client is using Security.getProvider() to look for >>>>>>> the provider? >>>>>>> >>>>>>> Currently the scenario fails to find the JCE provider. Is this >>>>>>> right behavior? If it is, then jdk9 is not backward compatible to >>>>>>> find the security provider provided through older jar files from >>>>>>> CLASS_PATH. >>>>>>> >>>>>> The JCE work in JDK 9 (via JDK-7191662) was meant to address this >>>>>> point by falling back and attempting to load the class name >>>>>> specified via the security.provider.<N> properties in the >>>>>> java.security file. I'm sure Valerie can say more about this. >>>>>> >>>>>> -Alan >> >