java.lang.Object
io.helidon.security.providers.idcs.mapper.IdcsRoleMapperProviderBase
All Implemented Interfaces:
SecurityProvider, SubjectMappingProvider
Direct Known Subclasses:
IdcsMtRoleMapperProvider, IdcsRoleMapperProvider

@Deprecated(forRemoval=true, since="2.4.0") public abstract class IdcsRoleMapperProviderBase extends Object implements SubjectMappingProvider
Deprecated, for removal: This API element is subject to removal in a future version.
Common functionality for IDCS role mapping.
  • Field Details

    • IDCS_SUBJECT_TYPE_USER

      public static final String IDCS_SUBJECT_TYPE_USER
      Deprecated, for removal: This API element is subject to removal in a future version.
      User subject type used when requesting roles from IDCS. An attempt is made to obtain it from JWT claim sub_type. If not defined, default is used as configured in IdcsRoleMapperProviderBase.Builder.
      See Also:
    • IDCS_SUBJECT_TYPE_CLIENT

      public static final String IDCS_SUBJECT_TYPE_CLIENT
      Deprecated, for removal: This API element is subject to removal in a future version.
      Client subject type used when requesting roles from IDCS. An attempt is made to obtain it from JWT claim sub_type. If not defined, default is used as configured in IdcsRoleMapperProviderBase.Builder.
      See Also:
    • ROLE_GROUP

      protected static final String ROLE_GROUP
      Deprecated, for removal: This API element is subject to removal in a future version.
      Json key for group roles to be retrieved from IDCS response.
      See Also:
    • ROLE_APPROLE

      protected static final String ROLE_APPROLE
      Deprecated, for removal: This API element is subject to removal in a future version.
      Json key for app roles to be retrieved from IDCS response.
      See Also:
    • ACCESS_TOKEN_KEY

      protected static final String ACCESS_TOKEN_KEY
      Deprecated, for removal: This API element is subject to removal in a future version.
      Json key for token to be retrieved from IDCS response when requesting application token.
      See Also:
    • PARENT_CONTEXT_CLIENT_PROPERTY

      protected static final String PARENT_CONTEXT_CLIENT_PROPERTY
      Deprecated, for removal: This API element is subject to removal in a future version.
      Property sent with JAX-RS requests to override parent span context in outbound calls. We cannot use the constant declared in ClientTracingFilter, as it is not a required dependency.
      See Also:
  • Constructor Details

    • IdcsRoleMapperProviderBase

      protected IdcsRoleMapperProviderBase(IdcsRoleMapperProviderBase.Builder<?> builder)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Configures the needed fields from the provided builder.
      Parameters:
      builder - builder with oidcConfig and other needed fields.
  • Method Details

    • map

      public CompletionStage<AuthenticationResponse> map(ProviderRequest authenticatedRequest, AuthenticationResponse previousResponse)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: SubjectMappingProvider
      Map grants from authenticated request (e.g. one or both of ProviderRequest.subject() or ProviderRequest.service() returns a non-empty value) to a new authentication response. The provider can change/add/remove grants (such as groups, scopes, permissions) or change the subject to a different one. This method is only invoked after a successful authentication.
      Specified by:
      map in interface SubjectMappingProvider
      Parameters:
      authenticatedRequest - request to get user and service subjects from
      previousResponse - response from previous authentication or subject mapping provider
      Returns:
      a new authentication response with updated user and/or service subjects
    • complete

      Deprecated, for removal: This API element is subject to removal in a future version.
      Create a CompletionStage with the provided response as its completion.
      Parameters:
      response - authentication response to complete with
      Returns:
      stage completed with the response
    • enhance

      protected abstract Subject enhance(Subject subject, ProviderRequest request, AuthenticationResponse previousResponse)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Enhance subject with IDCS roles.
      Parameters:
      subject - subject of the user (never null)
      request - provider request
      previousResponse - authenticated response (never null)
      Returns:
      stage with the new authentication response
    • buildSubject

      protected Subject buildSubject(Subject originalSubject, List<? extends Grant> grants)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Updates original subject with the list of grants.
      Parameters:
      originalSubject - as was created by authentication provider
      grants - grants added by this role mapper
      Returns:
      new subject
    • processServerResponse

      protected Optional<List<? extends Grant>> processServerResponse(Response groupResponse, String subjectName)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Process the server response to retrieve groups and app roles from it.
      Parameters:
      groupResponse - response from IDCS
      subjectName - name of the subject
      Returns:
      list of grants obtained from the IDCS response
    • oidcConfig

      protected OidcConfig oidcConfig()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Access to OidcConfig so the field is not duplicated by classes that extend this provider.
      Returns:
      open ID Connect configuration (also used to configure access to IDCS)
    • defaultIdcsSubjectType

      protected String defaultIdcsSubjectType()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Default subject type to use when requesting data from IDCS.
      Returns:
      configured default subject type or IDCS_SUBJECT_TYPE_USER