Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Wso2 Identity server:提高资源属性的AttributeFinderModule的性能_Performance_Wso2_Wso2is_Xacml_Xacml3 - Fatal编程技术网

Performance Wso2 Identity server:提高资源属性的AttributeFinderModule的性能

Performance Wso2 Identity server:提高资源属性的AttributeFinderModule的性能,performance,wso2,wso2is,xacml,xacml3,Performance,Wso2,Wso2is,Xacml,Xacml3,我的问题适用于wso2 identity server 4.5(IS)和balana“单机版” 我成功地处理了发送到IS(PDP的web服务接口)中授权服务的XACML多个请求,如“XACML v3.0多决策配置文件版本1.0”中所述 我在web上找到了几个自定义“属性查找器”的示例,但在所有这些示例中,实现都检索主题的属性(例如主题的角色),而不是资源的属性。 在我的用例中,我将向PDP发送一个包含主题所有属性和资源ID列表的xacml请求。 我实现了一个属性查找器来从外部系统(例如数据库或w

我的问题适用于wso2 identity server 4.5(IS)和balana“单机版”

我成功地处理了发送到IS(PDP的web服务接口)中授权服务的XACML多个请求,如“XACML v3.0多决策配置文件版本1.0”中所述

我在web上找到了几个自定义“属性查找器”的示例,但在所有这些示例中,实现都检索主题的属性(例如主题的角色),而不是资源的属性。 在我的用例中,我将向PDP发送一个包含主题所有属性和资源ID列表的xacml请求。 我实现了一个属性查找器来从外部系统(例如数据库或web服务)检索资源的属性第一个问题是:出于同样的原因不建议使用这种方法吗?

第二个问题是,如果资源数量增加,该属性在实现中的性能。

假设我们已经限制了策略定义中可以使用的资源属性列表。例如,一小部分属性

org.wso2.balana.finder.AttributeFinderModule中的方法:

public EvaluationResult findAttribute(URI attributeType, URI attributeId,
            String issuer, URI category, EvaluationCtx context) 
必须返回单个属性的值。因此,如果一个策略为一个资源评估了更多属性,那么对同一个资源调用该方法的次数就会更多。 如果在第一次调用同一资源的不同属性时读取该资源的所有属性,则可以避免对该资源的不同属性多次调用外部系统 并保存可用于后续调用的数据(例如,在线程局部变量上)

因此,如果我有一个多个请求,并且资源属性的策略应用于该请求,那么不仅对每个属性调用该方法的次数更多 相同资源的,但也适用于每个资源。为了提高性能,我希望减少对外部系统的调用次数 因此,我希望在方法“findAttribute”的第一次调用时读取所有资源的属性(或者如果我有一个非常大的集合,则读取子集)。 为此,我需要在“findAttribute”方法中访问请求中所有资源id的列表。我在中收到的EvaluationCtx 属性查找器只是从多个请求构建的集合中的一个。在org.wso2.balana.PDP.evaluate(EvaluationCtx)方法中循环处理整个集合 并且在方法“findAttribute”中不可用

例如,我可以扩展PDP类以在线程局部变量中发布完整的EvaluationCtx集(或资源id列表),但这可以在“balana单机版”中工作,而不能在wso2 Identity server中工作。 有什么想法吗

多谢各位。
斯蒂法诺是的。。您可以使用任何类别类型。。它可以是主题、资源或任何东西。。但大多数时候,策略都在寻找用户的属性。我想这就是样品看起来像那样的原因

是的。。这是一个很好的建议。我创造了一个新的改进。如果你愿意贡献。你可以提供一个补丁


但是,对于Identity Server,有单独的接口需要实现。它已被包装到Balana接口。请查看更多详细信息。实际上,对于Identity server,它使用属性缓存来提高性能。但是,如果我们能将您的建议添加到Balana中,这将有助于进一步改进

那么你的意思是说如果我们像Nope一样形成对主题、资源和行动的请求。。。添加新类别不会产生任何效果。但在WSO2 Identity Server中,有一个简单的抽象接口是通过认为只有四种类别类型。。。。。实际上它有一些改进。。但是如果你有新的分类,你可以写扩展这个属性查找器和写Hi-Asela谢谢你的回复,我发布了一些关于这个的问题,你能看看这个问题吗