Class RuleEvaluator
- java.lang.Object
-
- com.dtolabs.rundeck.core.authorization.RuleEvaluator
-
- All Implemented Interfaces:
AclRuleSetAuthorization,AclRuleSetSource,Authorization
public class RuleEvaluator extends java.lang.Object implements AclRuleSetAuthorization
Evaluate ACL requests over a set of rules
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceRuleEvaluator.AclSubjectCreator
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RuleEvaluatorcreateRuleEvaluator(AclRuleSet rules, RuleEvaluator.AclSubjectCreator creator)static RuleEvaluatorcreateRuleEvaluator(AclRuleSetSource ruleSetSource, RuleEvaluator.AclSubjectCreator creator)Decisionevaluate(java.util.Map<java.lang.String,java.lang.String> resource, javax.security.auth.Subject subject, java.lang.String action, java.util.Set<Attribute> environment)Evaluate the authorization request and return if this request is valid.java.util.Set<Decision>evaluate(java.util.Set<java.util.Map<java.lang.String,java.lang.String>> resources, javax.security.auth.Subject subject, java.util.Set<java.lang.String> actions, java.util.Set<Attribute> environment)Make a multiple resource determination by evaluating each action for each resource.AclRuleSetgetRuleSet()Explanation.Codeincludes(AclRule rule, java.util.Map<java.lang.String,java.lang.String> resource, java.lang.String action)static booleanmatchesAnyPatterns(java.util.Collection<java.lang.String> groups, java.lang.String patternStr)static booleanmatchesContexts(AclRule rule, AclSubject subject, java.util.Set<Attribute> environment)static java.util.List<AclRule>narrowContext(AclRuleSet ruleSet, AclSubject subject, java.util.Set<Attribute> environment)
-
-
-
Method Detail
-
createRuleEvaluator
public static RuleEvaluator createRuleEvaluator(AclRuleSetSource ruleSetSource, RuleEvaluator.AclSubjectCreator creator)
-
createRuleEvaluator
public static RuleEvaluator createRuleEvaluator(AclRuleSet rules, RuleEvaluator.AclSubjectCreator creator)
-
evaluate
public Decision evaluate(java.util.Map<java.lang.String,java.lang.String> resource, javax.security.auth.Subject subject, java.lang.String action, java.util.Set<Attribute> environment)
Description copied from interface:AuthorizationEvaluate the authorization request and return if this request is valid. Make a single resource determination. The method is loosely based on the XACML model for structuring requests and response. These can be prefixed with a fully qualified namespace and ':'. If anything goes wrong in evaluating the request, the result will be false. No exception will be thrown.- Specified by:
evaluatein interfaceAuthorization- Parameters:
resource- The properties that identify the resource.subject- The properties that represent the subject.action- A set of actions that are being requested on the resource.environment- A set of environment properties (hostname, time of day, etc.)- Returns:
- decision Return true if the subject's action on the object given the environment is authorized.
-
narrowContext
public static java.util.List<AclRule> narrowContext(AclRuleSet ruleSet, AclSubject subject, java.util.Set<Attribute> environment)
-
matchesContexts
public static boolean matchesContexts(AclRule rule, AclSubject subject, java.util.Set<Attribute> environment)
-
matchesAnyPatterns
public static boolean matchesAnyPatterns(java.util.Collection<java.lang.String> groups, java.lang.String patternStr)
-
evaluate
public java.util.Set<Decision> evaluate(java.util.Set<java.util.Map<java.lang.String,java.lang.String>> resources, javax.security.auth.Subject subject, java.util.Set<java.lang.String> actions, java.util.Set<Attribute> environment)
Description copied from interface:AuthorizationMake a multiple resource determination by evaluating each action for each resource.- Specified by:
evaluatein interfaceAuthorization- Parameters:
resources- resource setsubject- subjectactions- action setenvironment- environment- Returns:
- decisions for each resource+action pair
-
getRuleSet
public AclRuleSet getRuleSet()
- Specified by:
getRuleSetin interfaceAclRuleSetSource
-
includes
public Explanation.Code includes(AclRule rule, java.util.Map<java.lang.String,java.lang.String> resource, java.lang.String action)
-
-