2013-07-26 42 views
0

我是wso2的新手,我正在使用wso2 Identity Server來對我的項目進行身份驗證和授權。但我有一個問題來配置ApacheDSUserStoreManager作爲wso2身份服務器中的外部ldap userstore管理器。請任何人都可以爲我提供正確的處理方式。我的配置如下。如何將ApacheDSUserStoreManager配置爲wso2身份服務器中的外部ldap userstore管理器

配置文件是

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager"> 
    <Property name="defaultRealmName">sample.com</Property> 
    <Property name="kdcEnabled">false</Property> 
    <Property name="ConnectionURL">ldap://localhost:10389</Property> 
    <Property name="ConnectionName">uid=rpurimitla,ou=manage,dc=sample,dc=com</Property> 
    <Property name="ConnectionPassword">sample</Property> 
    <Property name="passwordHashMethod">SHA</Property> 
    <Property name="UserSearchBase">ou=manage,dc=sample,dc=com</Property> 
    <Property name="UserEntryObjectClass">inetOrgPerson</Property> 
    <Property name="UserNameAttribute">uid</Property> 
    <Property name="isADLDSRole">true</Property> 
    <Property name="userAccountControl">512</Property> 
    <Property name="UserNameListFilter">(objectClass=user)</Property> 
    <Property name="UserNameSearchFilter">(&amp;(objectClass=user)(cn=?))</Property> 
    <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-]{3,30}$</Property> 
    <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> 
    <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> 
    <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> 
    <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-]{3,30}$</Property> 
    <Property name="ReadLDAPGroups">true</Property> 
    <Property name="WriteLDAPGroups">true</Property> 
    <Property name="EmptyRolesAllowed">true</Property> 
    <Property name="GroupSearchBase">ou=manage,dc=sample,dc=com</Property> 
    <Property name="GroupEntryObjectClass">group</Property> 
    <Property name="GroupNameAttribute">cn</Property> 
    <Property name="MembershipAttribute">member</Property> 
    <Property name="GroupNameListFilter">(objectcategory=group)</Property> 
    <Property name="GroupNameSearchFilter">(&amp;(objectClass=group)(cn=?))</Property> 
    <Property name="UserRolesCacheEnabled">true</Property> 
    <Property name="Referral">follow</Property> 
    <Property name="BackLinksEnabled">true</Property> 
    </UserStoreManager> 

這是我得到

2013年7月26日17錯誤:57:47781] INFO {org.wso2.carbon.databridge.agent .thrift.AgentHolder} - 創建代理! [2013-07-26 17:57:47,859] INFO {org.wso2.carbon.databridge.agent.thrift.internal.AgentDS} - 已成功部署代理客戶端 [2013-07-26 17:57:48,000]信息{org.wso2.carbon.identity.authenticator.iwa.ui.internal.Activator} - 在系統中啓用的集成Windows身份驗證器 [2013-07-26 17:57:48,234] INFO {org.wso2.carbon.ldap。 server.DirectoryActivator} - 嵌入式LDAP被禁用。 [2013-07-26 17:57:49,781] ERROR {org.wso2.carbon.user.core.common.DefaultRealm} - 無法創建org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager java.lang .ClassNotFoundException:org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader .BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader .java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadCl assInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.wso2.carbon.user.core.common .DefaultRealm.createObjectWithOptions(DefaultRealm.java:215) at org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:147) at org.wso2.carbon.user.core.common.DefaultRealm .init(DefaultRealm.java:113) at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223) at org.wso2.carbon.user.core.common.DefaultRealmService。( (DefaultRealmService.java:103) at org.wso2.carbon.user.core.internal.Activa tor.startDeploy(Activator.java:67) 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) 在java.security.AccessController.doPrivileged(本機方法)

======================== ================================================== ======

+0

你的問題看起來類似於這個SO http://stackoverflow.com/questions/17330883/wso2-identity-server-external-ldap-throws-object-class-for-oid-identityperson-do –

回答

0

如果您正在使用IS 4.0.0或更高版本的ApacheDSUserStoreManager類已從這些版本中刪除。您需要根據您的版本更改您的配置。

您需要從user-mgt.xml中取消註釋以下部分並相應地更改配置。

<!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager"> 
     <Property name="ConnectionURL">ldap://localhost:10389</Property> 
     <Property name="ConnectionName">uid=admin,ou=system</Property> 
     <Property name="ConnectionPassword">secret</Property> 
     <Property name="passwordHashMethod">PLAIN_TEXT</Property> 
     <Property name="UserNameListFilter">(objectClass=person)</Property> 
     <Property name="UserEntryObjectClass">inetOrgPerson</Property> 
     <Property name="UserSearchBase">ou=system</Property> 
     <Property name="UserNameSearchFilter">(&amp;(objectClass=person)(uid=?))</Property> 
     <Property name="UserNameAttribute">uid</Property> 
     <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> 
     <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> 
     <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> 
     <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> 
     <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> 
     <Property name="ReadLDAPGroups">true</Property> 
     <Property name="WriteLDAPGroups">true</Property> 
     <Property name="EmptyRolesAllowed">false</Property> 
     <Property name="GroupSearchBase">ou=system</Property> 
     <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property> 
     <Property name="GroupEntryObjectClass">groupOfNames</Property> 
     <Property name="GroupNameSearchFilter">(&amp;(objectClass=groupOfNames)(cn=?))</Property> 
     <Property name="GroupNameAttribute">cn</Property> 
     <Property name="MembershipAttribute">member</Property> 
     <Property name="UserRolesCacheEnabled">true</Property> 
     <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property> 
     <Property name="maxFailedLoginAttempt">0</Property> 
    </UserStoreManager--> 

下面的鏈接[1]中有相關的問題。

[1] WSO2 Identity Server external LDAP throws OBJECT_CLASS for OID identityperson does not exist

希望這是很有幫助的。