Class IdcsRoleMapperRxProvider
java.lang.Object
io.helidon.security.providers.idcs.mapper.IdcsRoleMapperRxProviderBase
io.helidon.security.providers.idcs.mapper.IdcsRoleMapperRxProvider
- All Implemented Interfaces:
SecurityProvider
,SubjectMappingProvider
public class IdcsRoleMapperRxProvider
extends IdcsRoleMapperRxProviderBase
implements SubjectMappingProvider
SubjectMappingProvider
to obtain roles from IDCS server for a user.
Supports multi tenancy in IDCS.-
Nested Class Summary
Nested classes/interfaces inherited from class io.helidon.security.providers.idcs.mapper.IdcsRoleMapperRxProviderBase
IdcsRoleMapperRxProviderBase.AppTokenRx
-
Field Summary
Fields inherited from class io.helidon.security.providers.idcs.mapper.IdcsRoleMapperRxProviderBase
ACCESS_TOKEN_KEY, IDCS_SUBJECT_TYPE_CLIENT, IDCS_SUBJECT_TYPE_USER, PARENT_CONTEXT_CLIENT_PROPERTY, ROLE_APPROLE, ROLE_GROUP
-
Constructor Summary
ModifierConstructorDescriptionprotected
Constructor that accepts anyIdcsRoleMapperRxProvider.Builder
descendant. -
Method Summary
Modifier and TypeMethodDescriptionaddAdditionalGrants
(Subject subject, List<Grant> idcsGrants) Extension point to add additional grants that are not retrieved from IDCS.static IdcsRoleMapperRxProvider.Builder<?>
builder()
Creates a new builder to build instances of this class.computeGrants
(Subject subject) Compute grants for the provided subject.static SecurityProvider
Creates an instance from configuration.enhance
(ProviderRequest request, AuthenticationResponse previousResponse, Subject subject) Enhance subject with IDCS roles, reactive.getGrantsFromServer
(Subject subject) Retrieves grants from IDCS server.Methods inherited from class io.helidon.security.providers.idcs.mapper.IdcsRoleMapperRxProviderBase
buildSubject, defaultIdcsSubjectType, map, oidcConfig, processRoleRequest
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.helidon.security.spi.SecurityProvider
supportedAnnotations, supportedAttributes, supportedConfigKeys, supportedCustomObjects
Methods inherited from interface io.helidon.security.spi.SubjectMappingProvider
map
-
Constructor Details
-
IdcsRoleMapperRxProvider
Constructor that accepts anyIdcsRoleMapperRxProvider.Builder
descendant.- Parameters:
builder
- used to configure this instance
-
-
Method Details
-
builder
Creates a new builder to build instances of this class.- Returns:
- a new fluent API builder.
-
create
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
- oidc-config to load an instance of
-
enhance
protected Single<Subject> enhance(ProviderRequest request, AuthenticationResponse previousResponse, Subject subject) Description copied from class:IdcsRoleMapperRxProviderBase
Enhance subject with IDCS roles, reactive.- Specified by:
enhance
in classIdcsRoleMapperRxProviderBase
- Parameters:
request
- provider requestpreviousResponse
- authenticated responsesubject
- subject to enhance- Returns:
- future with enhanced subject
-
computeGrants
Compute grants for the provided subject. This implementation gets grants from servergetGrantsFromServer(io.helidon.security.Subject)
.- Parameters:
subject
- to retrieve roles (or in generalgrants
)- Returns:
- future with grants to be added to the subject
-
addAdditionalGrants
protected Single<List<? extends Grant>> addAdditionalGrants(Subject subject, List<Grant> idcsGrants) Extension point to add additional grants that are not retrieved from IDCS.- Parameters:
subject
- subject to enhanceidcsGrants
- grants obtained from IDCS- Returns:
- grants to add to the subject
-
getGrantsFromServer
Retrieves grants from IDCS server.- Parameters:
subject
- to get grants for- Returns:
- optional list of grants to be added
-