RFR: 8273026: Slow LoginContext.login() on multi threading application [v3]

Larry-N duke at openjdk.java.net
Wed Oct 27 18:43:46 UTC 2021


On Wed, 27 Oct 2021 13:06:54 GMT, Larry-N <duke at openjdk.java.net> wrote:

>> This fix adds a cache of service provider classes to LoginContext (in particular, it's a cache of LoginModules classes). The approach helps to increase the performance of the LoginContext.login() method significantly, especially in a multi-threading environment. Service Loader is used for polling on Service Provider classes, without instantiating LoginModules object if Service Provider name doesn't match record in .config file. The set of service providers is cached for each Context Loader separately.
>> This code passed successfully tier1 and tier2 tests on mac os.
>
> Larry-N has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Corrected trailing whitespaces

Thanks for the review, I'll update the code according to your notices.

Sorry, I didn't catch the point with the test.
Why the `lc.login();`  succeed if SecondLoginModule is compiled or not? 

> "so that the login succeeds only after there exists a SecondLoginModule"

maybe you mean the test Loader.java itself? I have rolled back changes in Loader.java and FirstLoginModule.java, added directives that you proposed to Loader.java, but the test fails.

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

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


More information about the security-dev mailing list