A new proposal to add methods to HttpsURLConnection to access SSLSession

Xuelei Fan xuelei.fan at oracle.com
Thu Nov 1 16:34:06 UTC 2018


I removed the deprecation parts in the update.  Here is the new webrev:
    http://cr.openjdk.java.net/~xuelei/8212261/webrev.01/

And the CSR was updated accordingly.
    https://bugs.openjdk.java.net/browse/JDK-8213161

Thanks,
Xuelei

On 11/1/2018 4:57 AM, Chris Hegarty wrote:
> 
>> On 31 Oct 2018, at 20:03, Xuelei Fan <xuelei.fan at oracle.com 
>> <mailto:xuelei.fan at oracle.com>> wrote:
>>> ...
>> Yes.  I had the same concern about the optional operation.  However, I 
>> came to a different conclusion if I'm from viewpoint of these users 
>> that need to use this new operation.
>>
>> If an application have to use this new operation, for example to 
>> access the negotiated TLS version, this operation is essential to it. 
>> Unfortunately, because of compatibility impact, we cannot force all 
>> implementation supports this new added operation.  It is a potential 
>> problem to those applications that need it.
>>
>> It would be nice if an implementation can support this operation as 
>> soon as possible.  If we just add the operation, providers may not 
>> aware there is a need to update their implementation.  Unfortunately. 
>> there is not much we can do to notify the provider.
>>
>> If we deprecated the duplicated methods, it is easier for providers to 
>> catch up with this new added operation, and move forward to support 
>> it. As the deprecating will show up building warnings, or even error 
>> if run in strict building mode.
> 
> I have no issue with the addition of the new method to access the
> SSLSession. Unfortunately, due to the evolutionary constraints of this
> API, the `getSSLSession` method will likely need to be specified to
> throw UOE. The actual JDK's HTTPS protocol handler implementation will
> not throw UOE.
> 
> Clearly there is a desire for non-JDK HTTPS protocol handler
> implementations to quickly determine the need to update their code and
> override the default implementation of `getSSLSession` ( to do something
> useful ), hence the request to deprecate the the existing individual
> security parameter accessor methods.
> 
> I don't believe that deprecating these individual security parameter
> accessors is a good idea for the following reasons:
> 
> 1) Deprecated warnings are only issued at compile-time, so only HTTPS
>     protocol handler implementations being recompiled may encounter the
>     warnings. Existing binary artifacts will not.
> 
> 2) More importantly. Forever more, developers wanting access to say,
>     the peer principle or the server's certificate chain, will be
>     encouraged to get them through an optional API ( rather than a
>     non-optional API ). This increases the risk that the code will
>     encounter an UOE. I don't think that this increased risk is justified
>     by the desire to not-have-two-ways-to-do-the-same-thing. I would
>     agree if this were a new API, but it is not.
> 
> HTTPS protocol handler implementations actively being maintained will
> likely quickly get requests from their users to provide a better
> implementation of this new method, as folk move towards TLS 1.3, etc.
> Maybe such requests will be sufficient to help adoption, at which point
> the deprecation of these methods could then be re-considered.
> 
> -Chris.
> 
> 



More information about the security-dev mailing list