Package io.quarkus.security.runtime
Class QuarkusPermission<T>
java.lang.Object
java.security.Permission
io.quarkus.security.runtime.QuarkusPermission<T>
- All Implemented Interfaces:
Serializable,Guard
Special type of
Permission which is used by Quarkus Security to call CDI bean methods annotated
with the PermissionChecker.- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedQuarkusPermission(String permissionName) Subclasses can declare constructors that accept permission name and/or arguments of a secured method. -
Method Summary
Modifier and TypeMethodDescriptionprotected static io.smallrye.mutiny.Uni<Boolean>final booleanfinal Stringprotected final TgetBean()final inthashCode()final booleanimplies(Permission requiredPermission) protected abstract booleanprotected abstract booleanisGranted(io.quarkus.security.identity.SecurityIdentity securityIdentity) Determines whether access to secured resource should be granted in a synchronous manner.(package private) final io.smallrye.mutiny.Uni<Boolean>isGranted(io.quarkus.security.identity.SecurityIdentity identity, BlockingSecurityExecutor blockingExecutor) protected abstract io.smallrye.mutiny.Uni<Boolean>isGrantedUni(io.quarkus.security.identity.SecurityIdentity securityIdentity) Determines whether access to secured resource should be granted in an asynchronous manner.protected abstract booleanWhether user-defined permission checker returnsUni.Methods inherited from class java.security.Permission
checkGuard, getName, newPermissionCollection, toString
-
Constructor Details
-
QuarkusPermission
Subclasses can declare constructors that accept permission name and/or arguments of a secured method.- Parameters:
permissionName- permission name, this matchesPermissionChecker.value()- See Also:
-
for more information about additional Permission arguments
-
-
Method Details
-
getBeanClass
- Returns:
- declaring class of the method annotated with the
PermissionChecker
-
isBlocking
protected abstract boolean isBlocking()- Returns:
- true if
isGranted(SecurityIdentity)must be executed on a worker thread
-
isReactive
protected abstract boolean isReactive()Whether user-defined permission checker returnsUni.- Returns:
- true if
isGrantedUni(SecurityIdentity)should be used instead of theisGranted(SecurityIdentity)
-
getBean
- Returns:
- CDI bean that declares the method annotated with the
PermissionChecker
-
isGranted
protected abstract boolean isGranted(io.quarkus.security.identity.SecurityIdentity securityIdentity) Determines whether access to secured resource should be granted in a synchronous manner. Subclasses should override this method unless they need to perform permission check in an asynchronous manner.- Parameters:
securityIdentity-SecurityIdentity- Returns:
- true if access should be granted and false otherwise
-
isGrantedUni
protected abstract io.smallrye.mutiny.Uni<Boolean> isGrantedUni(io.quarkus.security.identity.SecurityIdentity securityIdentity) Determines whether access to secured resource should be granted in an asynchronous manner. Subclasses can override this method, however it is only called whenisReactive()returnstrue.- Parameters:
securityIdentity-SecurityIdentity- Returns:
- Uni with
trueif access should be granted and Uni withfalseotherwise
-
isGranted
final io.smallrye.mutiny.Uni<Boolean> isGranted(io.quarkus.security.identity.SecurityIdentity identity, BlockingSecurityExecutor blockingExecutor) -
implies
- Specified by:
impliesin classPermission- Throws:
IllegalStateException- for this permission can only be set to thePermissionsAllowed.permission()
-
getActions
- Specified by:
getActionsin classPermission
-
equals
- Specified by:
equalsin classPermission
-
hashCode
public final int hashCode()- Specified by:
hashCodein classPermission
-
accessDenied
-