在wso2中配置自定义PIP点

时间:2017-11-21 08:09:36

标签: wso2 xacml

如果我缺少更多设置,需要帮助。描述如下

我通过扩展

编写了自定义PIP属性查找器类
  

AbstractPIPAttributeFinder

wso2的XACML实现

。此PIP点在内部调用一些服务以返回值。我试图通过执行以下配置在wso2中发布,但更改未在权利服务器的扩展选项卡中正确反映。 1. entitlement.propeties中更新的/CARBON_HOME/repository/conf/identity/entitlement.propeties文件。 2.将jar放入/CARBON_HOME/repository/components/lib folder

  

Entitlement.properties文件设置:

PIP.AttributeDesignators.Designator.1=org.wso2.carbon.identity.entitlement.pip.DefaultAttributeFinder 
PIP.AttributeDesignators.Designator.2=org.wso2.carbon.identity.application.authz.xacml.pip.AuthenticationContextAttributePIP 

PIP.AttributeDesignators.Designator.3 = oracle.fsgbu.et.dataAccess.CustomPIPAttributeFinder

oracle.fsgbu.et.dataAccess.CustomPIPAttributeFinder 

是我的类,用于解析属性值

1 个答案:

答案 0 :(得分:0)

我认为授权引擎无法找到您的课程。您必须让权利库知道您的课程。它可以通过OSGi片段来实现

  1. 您必须将您的软件包构建为OSGi软件包 - 有多个博客/指南如何操作,例如see this one。您必须使用正确的依赖项并导出包
  2. 将捆绑包放入组件/ dropins,而不是libs
  3. pom.xml中的
  4. 指定了fragment-host包,它是你自己的实现将注入的包
  5. <强>&LT;片段 - 主机&GT; org.wso2.carbon.identity.entitlement&LT; /片段 - 主机&GT;

    这将强制您的类被权利引擎

    所知

    我的pom.xml的一部分:

            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.3.7</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                        <Bundle-Name>${project.build.finalName}</Bundle-Name>
                        <Bundle-Version>${project.version}</Bundle-Version>
                        <Export-Package>
                            com.sample.dp.extpip,
                            com.sample.dp.extpip.conf
                        </Export-Package>
                        <Import-Package>
                            org.wso2.carbon.identity.entitlement.pip;version="0.0.0",
                            org.osgi.framework,
                            javax.xml.parsers;version="0.0.0",
                            *,
                            !javax.activation
                        </Import-Package>
                        <Fragment-Host>org.wso2.carbon.identity.entitlement</Fragment-Host>
                    </instructions>
                </configuration>
            </plugin>