在WSO2 IS和ESB之间共享LDAP的错误

问题描述:

我是使用WSO2 IS 5.0.0和ESB 4.8.1的新手,尝试此示例@http://hasini-gunasinghe.blogspot.sg/2011/08/fine-grained-authorization-to-restful.html(已将xacml 2.0更改为3.0策略,已发布策略更改为PDP) 也称为https://malalanayake.wordpress.com/2013/02/13/authentication-and-authorization-with-wso2esb-and-wso2is/在WSO2 IS和ESB之间共享LDAP的错误

在ESB的用户mgmt.xml,已经建立AddAdmin为false, 注释org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager部分并取消ISUserStoreManager类=“org.wso2 .carbon.user.core.ldap.ReadWriteLDAPUserStoreManager“部分并重新启动ESB

但是,它正在抛出[Start Level Event Dispatcher] ERROR Activator Can not s tart用户管理器核心包 java.lang.NullPointerException at org.wso2.carbon.user.core.common.DefaultRealmService。(DefaultRealmService.java:87) at org.wso2.carbon.user.core.common.DefaultRealmService。 (DefaultRealmService.java:114) at org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:69) at org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator .java:61) at org.eclipse.osgi.framework.internal.core.BundleContextImpl $ 1.run(BundleContextImpl.java:711) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi .framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702) at org.eclipse.osgi.framework.int ernal.core.BundleContextImpl.start(BundleContextImpl.java:683) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) at org.eclipse.osgi.framework.internal。在org.eclipse.osgi.framework.internal.core处的org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176) 处提供核心摘要.Bundle.resume(AbstractBundle.java:390) 。 StartLevelManager.resumeBundles(StartLevelManager.java:559) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) at org.eclipse.osgi.framework.internal.core.StartLevelManager。 incFWSL(StartLevelManager.java:457) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在org.eclipse.osgi.framework.eventmgr.EventManager $ EventThread.run(EventManager.java:340)

请协助。谢谢

因此,您希望将ESB配置为连接到WSO2IS的LDAP用户存储区。然后你想要通过以下。 (请注意,ESB不包含嵌入式LDAP服务器。)

  1. 评论的org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager
  2. 取消注释ISUserStoreManager
  3. 重命名ISUserStoreManager标签中UserStoreManager
  4. 配置LDAP URL中WSO2IS服务器的LDAP URL 。您可以通过在UserStoreManager元素下配置以下属性来完成此操作。默认情况下,WSO2IS的LDAP端口是10389(与港口偏移0)

    <Property name="ConnectionURL">ldap://localhost:10389</Property>

此外,如果你正在使用WSO2IS为XACML的授权,我建议你去通过this博客,因为它含有所有基本的在WSO2IS中使用XACML。

+1

将ISUserStoreManager标记重命名为UserStoreManager(之前已将ldap:// localhost:$ {Ports.EmbeddedLDAP.LDAPServerPort}更改为ldap:// localhost:10389),然后重新启动ESB。现在它正在工作。谢谢Asela。对不起,我太低级了,所以不能满足你的答案。 –