Class IdcsMtRoleMapperRxProvider

    • Method Detail

      • create

        public static SecurityProvider create​(Config config)
        Creates an instance from configuration.

        Expects:

        • oidc-config to load an instance of OidcConfig
        • cache-config (optional) to load an instance of EvictableCache for role caching
        Parameters:
        config - configuration of this provider
        Returns:
        a new instance configured from config
      • computeGrants

        protected Single<List<? extends Grant>> computeGrants​(String idcsTenantId,
                                                              String idcsAppName,
                                                              Subject subject)
        Compute grants for the provided MT information.
        Parameters:
        idcsTenantId - tenant id
        idcsAppName - app name
        subject - subject
        Returns:
        future with grants to be added to the subject
      • extractIdcsMtContext

        protected Optional<IdcsMtContext> extractIdcsMtContext​(Subject subject,
                                                               ProviderRequest request)
        Extract IDCS multitenancy context form the the request.

        By default, the context is extracted from the headers using token handlers for tenant and app.

        Parameters:
        subject - Subject that is being mapped
        request - ProviderRequest context that is being mapped.
        Returns:
        Optional with the context, empty if the context is not present in the request.
      • addAdditionalGrants

        protected Single<List<? extends Grant>> addAdditionalGrants​(String idcsTenantId,
                                                                    String idcsAppName,
                                                                    Subject subject,
                                                                    List<Grant> idcsGrants)
        Extension point to add additional grants to the subject being created.
        Parameters:
        idcsTenantId - IDCS tenant id
        idcsAppName - IDCS application name
        subject - subject of the user/service
        idcsGrants - Roles already retrieved from IDCS
        Returns:
        list with new grants to add to the enhanced subject
      • getGrantsFromServer

        protected Single<List<? extends Grant>> getGrantsFromServer​(String idcsTenantId,
                                                                    String idcsAppName,
                                                                    Subject subject)
        Get grants from IDCS server. The result is cached.
        Parameters:
        idcsTenantId - ID of the IDCS tenant
        idcsAppName - Name of IDCS application
        subject - subject to get grants for
        Returns:
        optional list of grants from server
      • getAppToken

        protected Single<Optional<String>> getAppToken​(String idcsTenantId,
                                                       RoleMapTracing tracing)
        Gets token from cache or from server.
        Parameters:
        idcsTenantId - id of tenant
        tracing - Role mapping tracing instance to correctly trace outbound calls
        Returns:
        the token to be used to authenticate this service