1

我当前的配置是

#
 <UserManager>
    <Realm>
        <Configuration>
                <AdminRole>admin</AdminRole> 
                <AdminUser>
                     <UserName>admin</UserName>
                     <Password>XXXXXX</Password>
                </AdminUser>
            <EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in     thsi role sees the registry root -->
<!--            <ReadOnly>false</ReadOnly> -->
            <MaxUserNameListLength>500</MaxUserNameListLength>
            <Property name="url">jdbc:h2:repository/database/WSO2CARBON_DB</Property>
            <Property name="userName">wso2carbon</Property>
            <Property name="password">wso2carbon</Property>
            <Property name="driverName">org.h2.Driver</Property>
            <Property name="maxActive">50</Property>
            <Property name="maxWait">60000</Property>
            <Property name="minIdle">5</Property>
        </Configuration>
        <UserStoreManager
            class="org.wso2.carbon.user.core.ldap.LDAPUserStoreManager">
            <Property name="ConnectionURL">ldap://localhost:389</Property>
            <Property name="ConnectionName">cn=admin,dc=ysd,dc=com</Property>
            <Property name="ConnectionPassword">admin32</Property>
            <Property name="UserSearchBase">ou=People,dc=ysd,dc=com</Property>
            <Property name="UserNameListFilter">(objectClass=person)</Property>
            <Property name="UserNameAttribute">uid</Property>
            <Property name="ReadLDAPGroups">false</Property>
            <Property name="GroupSearchBase">ou=People,dc=ysd,dc=com</Property>
            <Property name="GroupSearchFilter">(objectClass=groupOfNames)</Property>
            <Property name="GroupNameAttribute">cn</Property>
            <Property name="MembershipAttribute">member</Property>
        </UserStoreManager>
        <AuthorizationManager
            class="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager">
        </AuthorizationManager>
    </Realm>
</UserManager>`
#

启动服务器时出现以下错误。 *错误 {org.wso2.carbon.user.core.common.DefaultRealm} - 无法创建 org.wso2.carbon.user.core.ldap.LDAPUserStoreManager 。错误是:null java.lang.reflect.InvocationTargetException * ......................................................................

原因:org.wso2.carbon.user.core.UserStoreException:LDAPUserStoreManager 无法在读写模式下操作。这是无效的配置。它只能在 org.wso2.carbon.user.core.ldap.LDAPUserStoreManager.(LDAPUserStoreManager.java:97) 的 ReadOnly 模式下运行 ... 25 更多

4

1 回答 1

1

您的具体要求是什么?您是希望 Identity Server 对外部 LDAP 进行读写操作还是只进行读取操作?

您会收到此异常,因为您尝试将只读 ldap 用户存储用于两个读写操作。将参数设置<ReadOnly>false</ReadOnly>为true,则此错误将消失。

但是,如果您的要求是将 IS 用于两个读写操作,请使用 ApacheDSUserStoreManager。您可以为此使用 LDAPUserStoreManager。

于 2012-10-03T05:42:28.803 回答