public interface SecurityIdentity
Instances of this class will always be available for injection even if no user is currently
logged in. In this case isAnonymous() will return true, and the user
will generally not have any roles (although some implementation may assign roles to anonymous users).
Implementations should be immutable.
| Modifier and Type | Field and Description |
|---|---|
static String |
USER_ATTRIBUTE
The attribute name that is used to store the underlying user representation.
|
| Modifier and Type | Method and Description |
|---|---|
io.smallrye.mutiny.Uni<Boolean> |
checkPermission(Permission permission)
Checks if a user holds a given permissions, and if so will return
true. |
default boolean |
checkPermissionBlocking(Permission permission)
Checks if a user holds a given permissions, and if so will return
true. |
<T> T |
getAttribute(String name)
Gets an attribute from the identity.
|
Map<String,Object> |
getAttributes() |
<T extends Credential> |
getCredential(Class<T> credentialType)
Gets the users credential of the given type, or
null if a credential of the given type is not
present. |
Set<Credential> |
getCredentials()
Returns a set of all credentials owned by this user.
|
Principal |
getPrincipal() |
Set<String> |
getRoles()
Returns the set of all roles held by the user.
|
boolean |
hasRole(String role)
Checks if a user has a given role.
|
boolean |
isAnonymous() |
static final String USER_ATTRIBUTE
boolean isAnonymous()
true if this identity represents an anonymous (i.e. not logged in) userSet<String> getRoles()
Note that roles are returned on a best effort basis. To actually check if
a user holds a role hasRole(String) should be used instead. Some API's (e.g. JAX-RS) do not allow
for all roles to be returned, so if the underlying user representation does not support retrieving all the roles
this method will not always be reliable. In general all built in Quarkus security extensions should provide this,
unless it is documented otherwise.
This set should either be unmodifiable, or a defensive copy so attempts to change the role set do not modify the underlying identity.
boolean hasRole(String role)
If more advanced authorization support is required than can be provided by a simple role based system
then checkPermission(Permission) and checkPermissionBlocking(Permission) should be used
instead.
true if the identity has the specified role.<T extends Credential> T getCredential(Class<T> credentialType)
null if a credential of the given type is not
present.T - The type of the credentialcredentialType - The type of the credentialSet<Credential> getCredentials()
<T> T getAttribute(String name)
These can be arbitrary, and extensions are encouraged to use name spaced attribute names in a similar manner to package names.
The `quarkus.` namespace is reserved
The root
T - The type of the attributename - The attribute nameio.smallrye.mutiny.Uni<Boolean> checkPermission(Permission permission)
true.
This method is asynchronous, as it may involve calls to a remote resource.
permission - The permissiondefault boolean checkPermissionBlocking(Permission permission)
true.
This method is a blocking version of checkPermission(Permission). By default it will
just wait for the CompletionStage to be complete, however it is likely that some implementations
will want to provide a more efficient version.
permission - The permissionCopyright © 2020 JBoss by Red Hat. All rights reserved.