public final class PolicyValidator extends Object implements AbacValidator<PolicyValidator.PolicyConfig>
PolicyValidator.PolicyStatement. The statement itself is not resolved by this validator
and is delegated to another module implementing the PolicyExecutor obtained through a PolicyExecutorService
java service.
Implementations provided by Helidon security:
@PolicyStatement("${env.time.year >= 2017 && object.owner == subject.principal.id}")| Modifier and Type | Class and Description |
|---|---|
static class |
PolicyValidator.Builder
A fluent API builder for
PolicyValidator. |
static class |
PolicyValidator.PolicyConfig
Configuration of policy validator - a statement and whether to inherit value
from parents.
|
static interface |
PolicyValidator.PolicyStatement
Annotate resource classes, methods, application etc.
|
| Modifier and Type | Method and Description |
|---|---|
static PolicyValidator.Builder |
builder()
Creates a fluent API builder to build new instances of this class.
|
Class<PolicyValidator.PolicyConfig> |
configClass()
Class of the configuration type.
|
String |
configKey()
Key of a configuration entry that maps to this validator's configuration.
|
static PolicyValidator |
create(Config config)
Create an instance from configuration.
|
PolicyValidator.PolicyConfig |
fromAnnotations(EndpointConfig endpointConfig)
Load configuration class instance from annotations this validator expects.
|
PolicyValidator.PolicyConfig |
fromConfig(Config config)
Load configuration class instance from
Config. |
Collection<Class<? extends Annotation>> |
supportedAnnotations()
Provide extension annotations supported by this validator (e.g.
|
void |
validate(PolicyValidator.PolicyConfig config,
Errors.Collector collector,
ProviderRequest request)
Validate that the configuration provided would grant access to the resource.
|
public static PolicyValidator.Builder builder()
public static PolicyValidator create(Config config)
# configuration of this validator (current key in config passed to this instance) policy-validator: # explicit validators - only needed if not implementing service interfacePolicyExecutorServicevalidators: - class: "io.helidon.security.abac.policy.DefaultPolicyValidator" - class: "..." # configuration of a policy executor - provide this name throughPolicyExecutorService.configKey()my-custom-policy-engine: some-key: "some value" another-key: "another value"
config - configuration to load this class frompublic Collection<Class<? extends Annotation>> supportedAnnotations()
AbacValidatorRolesAllowed).
Annotations will be collected according to framework in use. For JAX-RS, annotations from application class, resource
class and resource methods will be collected.
The annotations will be transformed to configuration by AbacValidator.fromAnnotations(EndpointConfig).supportedAnnotations in interface AbacValidator<PolicyValidator.PolicyConfig>public Class<PolicyValidator.PolicyConfig> configClass()
AbacValidatorconfigClass in interface AbacValidator<PolicyValidator.PolicyConfig>public String configKey()
AbacValidatorconfigKey in interface AbacValidator<PolicyValidator.PolicyConfig>Configpublic PolicyValidator.PolicyConfig fromConfig(Config config)
AbacValidatorConfig.fromConfig in interface AbacValidator<PolicyValidator.PolicyConfig>config - configuration located on the key this validator expects in AbacValidator.configKey()public PolicyValidator.PolicyConfig fromAnnotations(EndpointConfig endpointConfig)
AbacValidatorfromAnnotations in interface AbacValidator<PolicyValidator.PolicyConfig>endpointConfig - endpoint configpublic void validate(PolicyValidator.PolicyConfig config, Errors.Collector collector, ProviderRequest request)
AbacValidatorErrors.Collector#fatal(Object, String).validate in interface AbacValidator<PolicyValidator.PolicyConfig>config - configuration of this validatorcollector - error collector to gather issues with this request (e.g. "service not in role ABC")request - ABAC context containing subject(s), object(s) and environmentCopyright © 2018–2019 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms.