java.lang.Object
io.helidon.security.ProviderRequest
- All Implemented Interfaces:
AbacSupport
A request sent to security providers.
Contains all information that may be needed to authenticate or authorize a request:
- User's subject:
subject()- if user is authenticated - Service subject:
service()- if service is authenticated - Environment information:
env()- path, method etc. - Object:
getObject()- target resource, if provided by user - Security context:
securityContext()- current subjects and information about security context of this request - Endpoint configuration:
endpointConfig()- annotations, endpoint specific configuration, custom objects, custom attributes
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.helidon.security.util.AbacSupport
AbacSupport.BasicAttributes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract Collection<String> Return all ABAC property names.abstract ObjectabacAttributeRaw(String key) Return the actual ABAC property value ornullif not present.static ProviderRequestCreate a new provider request.abstract EndpointConfigConfiguration of the invoked endpoint, such as annotations declared.abstract SecurityEnvironmentenv()Environment of current request, such as the URI invoked, time to use for security decisions etc.The object of this request.Get a value of a property from an object.abstract SecurityContextSecurity context associated with current request.service()Current service subject, if already authenticated.subject()Current user subject, if already authenticated.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.security.util.AbacSupport
abacAttribute
-
Constructor Details
-
ProviderRequest
protected ProviderRequest()Constructor for subclasses.
-
-
Method Details
-
create
public static ProviderRequest create(SecurityContext context, Map<String, Supplier<Object>> boundAttributes) Create a new provider request. The following attributes will be bound by this method (even if already specified):env- {code subject}
- {code service}
- Parameters:
context- current security contextboundAttributes- suppliers of bound attributes- Returns:
- a new provider request
-
getValue
Get a value of a property from an object. If object implementsAbacSupportthe value is obtained throughAbacSupport.abacAttribute(String), if not, the value is obtained by reflection from a public field or a public getter method. The method name may be (for attribute called for example "audit"):- audit
- getAudit
- isAudit
- shouldAudit
- hasAudit
- Parameters:
object- object to get attribute fromkey- key of the attribute- Returns:
- value of the attribute if found
-
endpointConfig
Configuration of the invoked endpoint, such as annotations declared.- Returns:
- endpoint config
-
securityContext
Security context associated with current request.- Returns:
- security context
-
subject
Current user subject, if already authenticated.- Returns:
- user subject or empty
-
service
Current service subject, if already authenticated.- Returns:
- service subject or empty.
-
env
Environment of current request, such as the URI invoked, time to use for security decisions etc.- Returns:
- security environment
-
getObject
The object of this request. Security request may be configured for a specific entity (e.g. if this is an entity modification request, the entity itself may be provided to help in a security task.- Returns:
- the object or empty if not known
-
abacAttributeRaw
Return the actual ABAC property value ornullif not present.- Specified by:
abacAttributeRawin interfaceAbacSupport- Parameters:
key- key of the property- Returns:
- value of the property or
null
-
abacAttributeNames
Return all ABAC property names.- Specified by:
abacAttributeNamesin interfaceAbacSupport- Returns:
- collection of keys
-