XACML-条件评估(Condition evaluation),规则评估(Rule evaluation),策略评估(Policy evaluation),策略集评估(PolicySet evaluation)

一、条件评估(Condition evaluation)

<Condition>元素缺失时或评估结果为真时,条件值为True。

<Condition>元素评估为假,返回False。

<Condition>元素中的表达式评估为不确定,Indeterminate。

二、规则评估(Rule evaluation)

规则评估与Target和Condition有关。

当Target返回No match时,Rule返回NotApplicable。

当Target返回Indeterminate时,Rule返回Indeterminate。

当Target返回Match或者Target为空时,Rule的返回值与Condition有关:

1, Condition为True,Rule返回值为Effect(取值为Permit或者Deny)。

2, Condition为False,Rule返回NotApplicable。

3, Condition为Indeterminate,Rule返回Indeterminate。

总结如图:

三、策略评估(Policy evaluation)

策略评估与Target和Rule有关。

当Target返回No match时, Policy返回NotApplicable。

当Target返回Indeterminate时,Policy返回Indeterminate。

当Target返回Match时,Policy的返回值与Rule有关:

1, 至少有一个Rule返回了Effect或者Indeterminate,则Policy返回的值由rule-combining algorithm决定。

2, 所有的Rule都返回NotApplicable,Policy返回NotApplicable。

总结如图:

四、策略集评估(PolicySet evaluation)

策略集评估与Target和Policy有关。

当Target返回No match时, PolicySet返回NotApplicable。

当Target返回Indeterminate时,PolicySet返回Indeterminate。

当Target返回Match时,PolicySet的返回值与Policy有关:

1, 至少有一个Policy返回了Decision或者Indeterminate,则PolicySet返回的值由Policy-combining algorithm决定。

2, 所有的Policy都返回NotApplicable,PolicySet返回NotApplicable。

总结如图:

本文参考:

[1] http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html#_Toc325047147

时间: 2024-08-03 01:20:27

XACML-条件评估(Condition evaluation),规则评估(Rule evaluation),策略评估(Policy evaluation),策略集评估(PolicySet evaluation)的相关文章

13.Java5条件阻塞Condition的应用

1 import java.util.concurrent.locks.Condition; 2 import java.util.concurrent.locks.Lock; 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * Java5条件阻塞Condition的应用 7 * Condition的功能类似在传统线程技术中的Object.wait()和Object.notify()功能. 8 * 在等待Condition

【java解惑】条件表达式结果类型规则

如下代码: public class Example008 { public static void main(String[] args) { char x = 'X'; int i = 0; System.out.println(true ? x : 65535); //1 System.out.println(true ? x : 65536); //2 System.out.println(true ? x : i); //3 System.out.println(false ? 0 :

经典笔试题:线程通信(使用重入锁(ReentrantLock)和条件队列(Condition)实现线程间通信)

经典笔试题: 1.自定义容器,提供新增元素(add)和获取元素数量(size)方法.2.启动两个线程.线程1向容器中新增10个数据.线程2监听容器元素数量,当容器元素数量为5时,线程2输出信息并终止. package com.gaopeng.programming.test2; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.conc

条件阻塞Condition的应用

Condition的功能类似在传统线程技术中的Object.wait和Object.notity的功能. 例子:生产者与消费者 import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Condition; import java.util.concurrent.lock

促销规则 promotion rule

参考:http://www.cnblogs.com/winstonyan/archive/2012/10/29/b2c_research_promotion_engine_and_rule_1.html 首先,让我们整理一下常见的促销规则和对应的例子. 整张订单消费满 x 节省百分比 或 数值 y适合全站促销. 从指定的目录或者产品集合里 面选购满 x 减百分比 或 数值比如图书分类,满100减10,满200减25等 购买某个或指定范围的产品节省百分比 或 数值 符合某个条件赠送某个产品 符合某

Linux组件封装(二) 条件变量Condition的封装

声明代码如下: 1 #ifndef CONDITION_H 2 #define CONDITION_H 3 4 #include <pthread.h> 5 #include "noncopyable.h" 6 7 class MutexLock; 8 9 10 class Condition : NonCopyable 11 { 12 public: 13 Condition(MutexLock &mutex); 14 ~Condition(); 15 16 vo

Linux组件封装(二)中条件变量Condition的封装

条件变量主要用于实现线程之间的协作关系. pthread_cond_t常用的操作有: int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr); int pthread_cond_signal(pthread_cond_t *cond); int pthread_cond_broadcast(pthread_cond_t *cond); int pthread_cond_wait(pthread_cond

spring boot: 条件注解@Condition

@Conditional根据满足某一个特定的条件创建一个特定的Bean(基于条件的Bean的创建,即使用@Conditional注解). 比方说,当一个jar包在一个类的路径下的时候,自动配置一个或多个Bean,或者只有某个Bean被创建才会去创建另外一个Bean. 通过实现Condition接口,并重写期matches方法来构造判断条件.若在windows系统洗运行程序,则输出列表命令dir,若在linux操作系统下运行程序,则输出命令为:ls. 1.判断条件定义 判断windows的条件 1

深入解析条件变量(condition variables)

深入解析条件变量 什么是条件变量(condition variables) 引用APUE中的一句话: Condition variables are another synchronization mechanism available to threads. These synchronization objects provide a place for threads to rendezvous. When used with mutexes, condition variables al