Class IdcsRoleMapperProviderBase
java.lang.Object
io.helidon.security.providers.idcs.mapper.IdcsRoleMapperProviderBase
- All Implemented Interfaces:
- SecurityProvider,- SubjectMappingProvider
- Direct Known Subclasses:
- IdcsMtRoleMapperProvider,- IdcsRoleMapperProvider
Common functionality for IDCS role mapping using 
Http1Client.- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static classReactive token for app access to IDCS.static classFluent API builder forIdcsRoleMapperProviderBase.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected static final StringJson key for token to be retrieved from IDCS response when requesting application token.static final StringClient subject type used when requesting roles from IDCS.static final StringUser subject type used when requesting roles from IDCS.protected static final StringProperty sent with JAX-RS requests to override parent span context in outbound calls.protected static final StringJson key for app roles to be retrieved from IDCS response.protected static final StringJson key for group roles to be retrieved from IDCS response.
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedConfigures the needed fields from the provided builder.
- 
Method SummaryModifier and TypeMethodDescriptionprotected SubjectbuildSubject(Subject originalSubject, List<? extends Grant> grants) Updates original subject with the list of grants.protected StringDefault subject type to use when requesting data from IDCS.protected abstract Subjectenhance(ProviderRequest request, AuthenticationResponse previousResponse, Subject subject) Enhance subject with IDCS roles, reactive.map(ProviderRequest authenticatedRequest, AuthenticationResponse previousResponse) Map grants from authenticated request (e.g.protected OidcConfigAccess toOidcConfigso the field is not duplicated by classes that extend this provider.processRoleRequest(HttpClientRequest request, Object entity, String subjectName) Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.security.spi.SecurityProvidersupportedAnnotations, supportedAttributes, supportedConfigKeys, supportedCustomObjects
- 
Field Details- 
IDCS_SUBJECT_TYPE_USERUser subject type used when requesting roles from IDCS. An attempt is made to obtain it from JWT claimsub_type. If not defined, default is used as configured inIdcsRoleMapperProviderBase.Builder.- See Also:
 
- 
IDCS_SUBJECT_TYPE_CLIENTClient subject type used when requesting roles from IDCS. An attempt is made to obtain it from JWT claimsub_type. If not defined, default is used as configured inIdcsRoleMapperProviderBase.Builder.- See Also:
 
- 
ROLE_GROUPJson key for group roles to be retrieved from IDCS response.- See Also:
 
- 
ROLE_APPROLEJson key for app roles to be retrieved from IDCS response.- See Also:
 
- 
ACCESS_TOKEN_KEYJson key for token to be retrieved from IDCS response when requesting application token.- See Also:
 
- 
PARENT_CONTEXT_CLIENT_PROPERTYProperty sent with JAX-RS requests to override parent span context in outbound calls. We cannot use the constant declared inClientTracingFilter, as it is not a required dependency.- See Also:
 
 
- 
- 
Constructor Details- 
IdcsRoleMapperProviderBaseConfigures the needed fields from the provided builder.- Parameters:
- builder- builder with oidcConfig and other needed fields.
 
 
- 
- 
Method Details- 
mappublic AuthenticationResponse map(ProviderRequest authenticatedRequest, AuthenticationResponse previousResponse) Description copied from interface:SubjectMappingProviderMap grants from authenticated request (e.g. one or both ofProviderRequest.subject()orProviderRequest.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:
- mapin 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
 
- 
enhanceprotected abstract Subject enhance(ProviderRequest request, AuthenticationResponse previousResponse, Subject subject) Enhance subject with IDCS roles, reactive.- Parameters:
- request- provider request
- previousResponse- authenticated response
- subject- subject to enhance
- Returns:
- future with enhanced subject
 
- 
buildSubjectUpdates 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
 
- 
processRoleRequestprotected List<? extends Grant> processRoleRequest(HttpClientRequest request, Object entity, String subjectName) 
- 
oidcConfigAccess toOidcConfigso the field is not duplicated by classes that extend this provider.- Returns:
- open ID Connect configuration (also used to configure access to IDCS)
 
- 
defaultIdcsSubjectTypeDefault subject type to use when requesting data from IDCS.- Returns:
- configured default subject type or IDCS_SUBJECT_TYPE_USER
 
 
-