WSO2 身份 - XACML PIP 扩展抛出 org.apache.axis2.AxisFault:发生异常

WSO2 Identity - XACML PIP extension throws org.apache.axis2.AxisFault: Exception occurred

当通过 Java 程序添加 Java PIP 扩展时,打包为 .jar 文件并使用 entitlement.properties 配置行:

PIP.AttributeDesignators.Designator.2=com.ibm.carbon.pip.RedAttributeFinder

服务器重新启动后,服务器抛出一条错误消息,如下所示,并在 Web 授权屏幕上可见:

Error while loading entitlement policies. Exception occurred while trying to invoke service method getAllPolicies
The following error details are available. Please refer logs for more details.
org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method getAllPolicies
at org.wso2.carbon.identity.entitlement.ui.client.EntitlementPolicyAdminServiceClient.handleException(EntitlementPolicyAdminServiceClient.java:478)
at org.wso2.carbon.identity.entitlement.ui.client.EntitlementPolicyAdminServiceClient.getAllPolicies(EntitlementPolicyAdminServiceClient.java:81)
at org.apache.jsp.entitlement.index_jsp._jspService(org.apache.jsp.entitlement.index_jsp:183)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
... 

我查看了示例和源代码,尝试了几个,还使用了本文 中发布的最新示例代码。在所有测试条件下,无论扩展添加的代码如何,产生的错误始终完全相同。

有没有一种技术可以调试 PIP 引擎的内部错误消息并找出导致 Axis 服务受阻的问题的根本错误?

状态更新:

但是,我在 PIP 扩展测试方面没有任何进展。定义的 WSO2 服务器无法获取和加载名为 "RedAttributeFinder" 的 Java 扩展 class,按照 http://xacmlinfo.org/2011/12/18/writing-jdbc-pip-module/ 处的说明注册。我们也不 在服务器启动和日志中查看任何 class 加载程序错误消息,只是如上所述的 "AxisFault" 错误消息。包名称已修改为名称 "com.red.carbon.pip"。

class 是使用以下定义激活的:

PIP.AttributeDesignators.Designator.2=com.red.carbon.pip.RedAttributeFinder 

我们的代码将使用默认的 "subjectid" 作为输入参数,并创建一个包含六个字段的列表作为输出。是否需要定义字段,即添加的字段并在模式 .xsd 或 .xml 文件中定义它,如果是,是否有可用的文档?在我们的测试中,我们没有使用 XML 定义的 "datasources",因为此时不需要使用数据库服务。

问题:需要什么定义来激活 WSO2 服务器上的配置并加载 PIP 扩展代码并使其对 PDP 扩展控制台显示可见,或者更正 "AxisFault" 错误?

我已经用 svn 源存储库中的最新版本替换了 KmarketPIIPAttributeFinder 程序模块(参见下面的 link)并编译了它。这解决了 WSO2 身份服务器版本 5 下的问题,例程开始注册 PIP 属性,现在在 PDP 扩展中可见。

从以下位置下载模块:https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/identity/org.wso2.carbon.identity.samples.entitlement.pip/src/main/java/org/wso2/carbon/identity/samples/entitlement/pip/KmarketPIPAttributeFinder.java