Class DelegatingUserProvider
java.lang.Object
io.fluxcapacitor.javaclient.tracking.handling.authentication.DelegatingUserProvider
- All Implemented Interfaces:
UserProvider
An extendable
UserProvider
that delegates to another UserProvider
.-
Field Summary
FieldsFields inherited from interface io.fluxcapacitor.javaclient.tracking.handling.authentication.UserProvider
defaultUserProvider
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddToMetadata
(Metadata metadata, User user, boolean ifAbsent) Adds user-related metadata to a message.andThen
(UserProvider other) Combines this provider with another.boolean
containsUser
(Metadata metadata) Checks if the given metadata contains user information that can be resolved by this provider.fromMessage
(HasMessage message) Extracts theUser
from a givenHasMessage
instance.Returns the currently active user, typically injected by the current context.Returns theUser
representing the system (non-human) identity.getUserById
(Object userId) Retrieves aUser
by their unique identifier.removeFromMetadata
(Metadata metadata) Removes any user-related metadata entries from the givenMetadata
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.fluxcapacitor.javaclient.tracking.handling.authentication.UserProvider
addToMetadata
-
Field Details
-
delegate
-
-
Constructor Details
-
DelegatingUserProvider
public DelegatingUserProvider()
-
-
Method Details
-
getActiveUser
Description copied from interface:UserProvider
Returns the currently active user, typically injected by the current context.- Specified by:
getActiveUser
in interfaceUserProvider
- Returns:
- the active
User
, orUser.getCurrent()
if not explicitly provided
-
getUserById
Description copied from interface:UserProvider
Retrieves aUser
by their unique identifier.This method is primarily used in
TestFixture
-based access control tests, such as when usingwhenCommandByUser(...)
, to simulate requests by a specific user.Implementations may return
null
if the user cannot be found, or alternatively return a new, unprivilegedUser
instance. The latter approach allows tests to verify authorization behavior for unknown or default users without requiring explicit user creation.- Specified by:
getUserById
in interfaceUserProvider
- Parameters:
userId
- the unique identifier of the user (typically a String or number)- Returns:
- the matching
User
, a default unprivilegedUser
, ornull
if not found
-
getSystemUser
Description copied from interface:UserProvider
Returns theUser
representing the system (non-human) identity. Typically used for scheduled messages, internal services, etc.- Specified by:
getSystemUser
in interfaceUserProvider
-
fromMessage
Description copied from interface:UserProvider
Extracts theUser
from a givenHasMessage
instance. Implementations may inspect message metadata or payload to resolve the user identity.- Specified by:
fromMessage
in interfaceUserProvider
- Parameters:
message
- the message containing potential user-related metadata- Returns:
- the resolved
User
, ornull
if no user info was found
-
containsUser
Description copied from interface:UserProvider
Checks if the given metadata contains user information that can be resolved by this provider.- Specified by:
containsUser
in interfaceUserProvider
- Parameters:
metadata
- the metadata to inspect- Returns:
true
if the metadata contains recognizable user information
-
removeFromMetadata
Description copied from interface:UserProvider
Removes any user-related metadata entries from the givenMetadata
.- Specified by:
removeFromMetadata
in interfaceUserProvider
- Parameters:
metadata
- the metadata to clean- Returns:
- a new
Metadata
instance without any user-specific keys
-
addToMetadata
Description copied from interface:UserProvider
Adds user-related metadata to a message.- Specified by:
addToMetadata
in interfaceUserProvider
- Parameters:
metadata
- the original metadatauser
- the user to includeifAbsent
- iftrue
, metadata is only added if not already present- Returns:
- updated
Metadata
with user info conditionally added
-
andThen
Description copied from interface:UserProvider
Combines this provider with another.The returned provider will try this provider first, falling back to
other
if a user cannot be resolved. This is useful for composing multiple resolution strategies.- Specified by:
andThen
in interfaceUserProvider
- Parameters:
other
- another user provider to chain after this one- Returns:
- a new
UserProvider
that delegates to both providers
-