[ 
https://issues.apache.org/jira/browse/PROTON-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13530073#comment-13530073
 ] 

Philip Harvey commented on PROTON-181:
--------------------------------------

I propose that we increase the scope of this Jira.  

I'd like the remaining per-session setter functions 
(pn_ssl_set_peer_authentication and pn_ssl_allow_unsecured_client) to be moved 
to the new SSL domain object.  My reasons for preferring this are:

- It is more convenient for the host application to set these details once on 
the SSL domain than on every SSL session.

- If different settings are required for a particular session, then the host 
application could just create a new SSL domain.  This feels more natural than 
having an interplay of default/override settings on the domain and the session 
respectively.

- If we only allow peer authentication to be configured on an SSL domain, and 
not on each session, it allows proton-j to maintain a one-to-one mapping 
between a Proton SSL domain and a java SSLContext, thus making our 
implementation simpler.  If we do this, it would feel natural to move peer 
authentication to SSL domain too.

                
> SSL layer - deprecate old per-connection credentials API, introduce new 
> top-level configuration domain
> ------------------------------------------------------------------------------------------------------
>
>                 Key: PROTON-181
>                 URL: https://issues.apache.org/jira/browse/PROTON-181
>             Project: Qpid Proton
>          Issue Type: Wish
>          Components: proton-c, proton-j
>    Affects Versions: 0.2
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>             Fix For: 0.3
>
>
> In the first two releases of the SSL layer, the model only provided a 
> per-connection object (pn_ssl_t).  Thus, all configuration had to be applied 
> each time an SSL connection was created.
> As new capabilities were added to SSL, this model has proven to be 
> inadequate.  
> With session resume, a new top-level object was introduced: pn_ssl_domain_t.  
> This object becomes a "factory" for pn_ssl_t connections.  Common 
> configuration, such as credentials and CA database, are configured at the 
> pn_ssl_domain_t level, and are adopted by each connection (pn_ssl_t) that is 
> created.
> This model not only reduces the configuration actions need by the app, but 
> results in a cleaner SSL implementation since the underlying SSL libraries 
> (OpenSSL and Java's SSL) use a very similar model.
> More detail of the new api can be seen in PROTON-136.
> The problem now become support of the old api.  Behavior becomes a bit vague 
> if we allow credential, etc, configuration on both the domain and the ssl 
> connection.  Given the brief exposure of the existing api, we'd like to drop 
> support for the following existing SSL API methods:
> pn_ssl() - constructor
> pn_ssl_init()
> pn_ssl_set_credentials()
> pn_ssl_set_trusted_ca_db()
> The corresponding functionality would instead be available via the 
> domain-based api.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to