Support for wildcard (*) membership type

Version 13

    Use cases

     

    An user is assigned the * membership type for a group, when a membership type for this group and user is checked, then it is true regardless of the membership type

     

    Specification

     

    Requirement documentation for supporting wild-card membership type in GateIn

     

    Wildcard (*) memberhip type is considered identical to ANY membership type. This feature is useful when we don't want to specify a concrete membership type when working with organization api. This feature implies:

     

    • To change the organization service API (in Core project)
    • To define the behavior of the membership type resolution algorithm
    • To have the organization service implementation to implement the membership type checking algorithm according to the specification
    • To create the necessary tests to ensure the implementations of the organization service API conform to the algorithm

     

    The *  is just like any other membership type, it can be configured explicitly by organization service initializer to be created at first starting time.

    To keep it transparent, backward compatible with previous version, we introduce a new method in GroupHandler interface for performing resolution of * wildcard membership type.

     

    API behavior

     

    GroupHandler interface

     

    A new method that performs resolution:

    • Collection resolveGroupByMembership(String userName, String membershipType) : returns each group for which the user has the specified membershipType relationship or the * membership

     

    MembershipTypeHandler interface

    • Collection findMembershipTypes() : * should be the first membership type of the collection if it exists

     

    For the other parts

       The * should be treated like before.

     

    References

     

    JIRA issues: COR-300, COR-302 and GTNPORTAL-2899