[jboss-jira] [JBoss JIRA] (ELY-698) Rework the constructor exclusion logic for authentication rules and configurations

David Lloyd (JIRA) issues at jboss.org
Fri Oct 28 12:32:01 EDT 2016


    [ https://issues.jboss.org/browse/ELY-698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13313582#comment-13313582 ] 

David Lloyd commented on ELY-698:
---------------------------------

The present requirements for an AuthenticationConfiguration are:

* Ordering is insignificant for non-overlapping configurations.  For example, if A then B are added into a configuration, and A and B do not logically overlap, the result will be identical to adding B then A.
* Equals/hashCode must respect the ordering rule.  In the previous example, both configurations must have the same hash code and be equal to one another.
* In order to meet this rule, two logically overlapping configurations may not coexist on a configuration.  For example, two different configurations that both logically establish a cleartext password will be exclusive, such that whichever one is added last is retained and the other one is dropped.

I suppose these rules really should be on the JavaDoc.

> Rework the constructor exclusion logic for authentication rules and configurations
> ----------------------------------------------------------------------------------
>
>                 Key: ELY-698
>                 URL: https://issues.jboss.org/browse/ELY-698
>             Project: WildFly Elytron
>          Issue Type: Task
>          Components: Authentication Client
>            Reporter: David Lloyd
>            Priority: Minor
>
> The current authentication rule and configuration classes are designed to ensure that mutually incompatible rules and configurations cannot coexist.  However the implementation is applied a bit erratically.  There may be problems with commutatively applying checks.  Some checks may be missing or extraneous.
> We need a new approach where the mutual exclusion set is somehow enforced centrally.  One option is to have literal sets, and each class that is a member of one or more sets must remove all other handlers that are also within the set(s).  A predicate could be used to make this efficient by only sweeping the list one time, in contrast to the current mechanism which sweeps the list once per exclusive type.
> Another option is to have a marker interface for each capability, and to remove all peers with the same capability.  A predicate can also be used in this case.



--
This message was sent by Atlassian JIRA
(v7.2.2#72004)


More information about the jboss-jira mailing list