繁体   English   中英

WSO2 身份服务器错误启动,找不到管理员

[英]WSO2 Identity Server error starting, cannot find admin

第一次启动 WSO2 身份服务器给了我这个错误:

“原因:org.wso2.carbon.user.core.UserStoreException:无法在主用户存储中创建管理员用户。用户存储是只读的。请选择主用户存储中存在的用户名作为管理员用户”

<UserManager>
<Realm>
    <Configuration>
        <AddAdmin>false</AddAdmin>
        <AdminRole>admins</AdminRole>
        <AdminUser>
            <UserName>cn=Directory Manager</UserName>
            <Password>xxxxxxxx</Password>
        </AdminUser>
        <EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root -->
        <Property name="dataSource">jdbc/WSO2CarbonDB</Property>
    </Configuration>


    <UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager">
        <Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
        <Property name="ConnectionURL">ldap://localhost:389</Property>
        <Property name="ConnectionName">cn=Directory Manager</Property>
        <Property name="ReadOnly">true</Property>
        <Property name="ConnectionPassword">oursecretpassword</Property>
        <Property name="passwordHashMethod">PLAIN_TEXT</Property>
        <Property name="UserNameListFilter">(objectClass=person)</Property>
        <Property name="UserEntryObjectClass">pccperson</Property>
        <Property name="UserSearchBase">ou=People,dc=pcc.edu,dc=cp</Property>
        <Property name="UserNameSearchFilter">(&amp;(objectClass=person)(uid=?))</Property>
        <Property name="UserNameAttribute">uid</Property>
        <Property name="PasswordJavaScriptRegEx">^[\S]{5,30}$</Property>
        <Property name="UsernameJavaScriptRegEx">^[\S]{3,30}$</Property>
        <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
        <Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property>
        <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
        <Property name="ReadGroups">true</Property>
        <Property name="WriteGroups">false</Property>
        <Property name="EmptyRolesAllowed">true</Property>
        <Property name="GroupSearchBase">ou=Groups,dc=pcc,dc=edu</Property>
        <Property name="GroupNameListFilter">(objectClass=groupofuniquenames)</Property>
        <Property name="GroupEntryObjectClass">groupofuniquenames</Property>
        <Property name="GroupNameSearchFilter">(&amp;(objectClass=groupofuniquenames)(cn=?))</Property>
        <Property name="GroupNameAttribute">cn</Property>
        <Property name="MembershipAttribute">uniqueMember</Property>
        <Property name="UserRolesCacheEnabled">true</Property>
        <Property name="MaxRoleNameListLength">100</Property>
        <Property name="MaxUserNameListLength">100</Property>
        <Property name="SCIMEnabled">false</Property>
    </UserStoreManager>

TID:[0] [IS] [2015-05-22 11:35:10,888] 信息 {org.wso2.carbon.user.core.common.DefaultRealmService} - 数据库已经存在。 不创建新数据库。 {org.wso2.carbon.user.core.common.DefaultRealmService} TID:[0] [IS] [2015-05-22 11:35:11,233] 信息 {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager } - 在只读模式下成功创建 LDAP 连接 {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} TID:[0] [IS] [2015-05-22 11:35:11,841] 错误 {org. wso2.carbon.user.core.common.DefaultRealm} - 无法创建 org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager {org.wso2.carbon.user.core.common.DefaultRealm} java.lang.reflect.InvocationTargetException在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor .newInstance(Constructor.java:526) 在 org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:329) 在 org.wso2.carbon.us er.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:195) 在 org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:104) 在 org.wso2.carbon.user.core。 common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223) at org.wso2.carbon.user.core.common.DefaultRealmService.(DefaultRealmService.java:101) at org.wso2.carbon.user.core.common.DefaultRealmService.( DefaultRealmService.java:114) 在 org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:69) 在 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) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683) 在 org.eclipse.osgi.framework.internal.core.B undleHost.startWorker(BundleHost.java:381) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390) 在 org.eclipse.osgi.framework.internal.core.Framework.resumeBundle( Framework.java:1176) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:第544章.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) 在 org.eclipse.osgi .framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(Eve ntManager.java:340) 原因:org.wso2.carbon.user.core.UserStoreException:无法在主用户存储中创建管理员用户。 用户存储是只读的。 请在 org.wso2.carbon.user.core 的 org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:3206) 中选择一个存在于主用户存储中的用户名作为管理员用户。 ldap.ReadOnlyLDAPUserStoreManager.(ReadOnlyLDAPUserStoreManager.java:166) at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.(ReadOnlyLDAPUserStoreManager.java:97) ... 还有 27 个 TID: [0] [IS] [2015-05 -22 11:35:11,844] 错误 {org.wso2.carbon.user.core.common.DefaultRealmService} - 无法初始化领域。 {org.wso2.carbon.user.core.common.DefaultRealmService} org.wso2.carbon.user.core.UserStoreException: nullType class java.lang.reflect.InvocationTargetException at org.wso2.carbon.user.core.common.DefaultRealm .createObjectWithOptions(DefaultRealm.java:370) 在 org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:195) 在 org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm .java:104) 在 org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223) 在 org.wso2.carbon.user.core.common.DefaultRealmService.(DefaultRealmService.java:101)在 org.wso2.carbon.user.core.common.DefaultRealmService.(DefaultRealmService.java:114) 在 org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:69) 在 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.AccessControll er.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java :683) 在 org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390) 在org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) 在 org.eclipse.org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)。 osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) 在 org.eclipse.osgi.framework。 internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelMan ager.java:438) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)在 org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 原因:sun.reflect 的 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 的 java.lang.reflect.InvocationTargetException。 NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.wso2.carbon.user .core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:329) ... 22 更多原因:org.wso2.carbon.user.core.UserStoreException:无法在主用户存储中创建管理员用户。 用户存储是只读的。 请在 org.wso2.carbon.user.core 的 org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:3206) 中选择一个存在于主用户存储中的用户名作为管理员用户。 ldap.ReadOnlyLDAPUserStoreManager.(ReadOnlyLDAPUserStoreManager.java:166) at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.(ReadOnlyLDAPUserStoreManager.java:97) ... 还有 27 个 TID: [0] [IS] [2015-05 -22 11:35:11,845] 错误 {org.wso2.carbon.user.core.internal.Activator} - 无法启动用户管理器核心包 {org.wso2.carbon.user.core.internal.Activator} org.wso2。 carbon.user.core.UserStoreException:无法初始化领域。 在 org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:231) 在 org.wso2.carbon.user.core.common.DefaultRealmService.(DefaultRealmService.java:101) 在 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.start(BundleContextImpl.java:683) 在 org.eclipse.org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)。 osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390) 在 org.eclip se.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) 在 org.eclipse.osgi。 framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) 在 org.eclipse.osgi.framework.internal。 core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager。 dispatchEvent(StartLevelManager.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java: 340)引起:org.wso2.carbon.user.core.UserStoreException:空类型类java.lang.reflect.InvocationTargetException at org.wso 2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:370) 在 org.wso2.carbon 的 org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:195)。 user.core.common.DefaultRealm.init(DefaultRealm.java:104) at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223) ... 19 更多原因:java.lang .reflect.InvocationTargetException 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang .reflect.Constructor.newInstance(Constructor.java:526) at org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:329) ... 22 更多原因:org.wso2.carbon。 user.core.UserStoreException:无法在主用户存储中创建管理员用户。 用户存储是只读的。 请在 org.wso2.carbon.user.core 的 org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:3206) 中选择一个存在于主用户存储中的用户名作为管理员用户。 ldap.ReadOnlyLDAPUserStoreManager.(ReadOnlyLDAPUserStoreManager.java:166) at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.(ReadOnlyLDAPUserStoreManager.java:97) ... 27 更多

我尝试将 AdminRole 设置为'admins' and 'cn=admins' 无论哪种方式都相同的错误。

我没有大量从头开始设置 LDAP 服务器的经验,但我认为我正确安装了 389-DS。

查看我的组条目:

ldapsearch -b "cn=Admins,ou=Groups,dc=pcc,dc=edu" -D "cn=Directory Manager" -W cn=* 输入 LDAP 密码:

dn: cn=admins,ou=Groups,dc=pcc,dc=edu objectClass: 顶级 objectClass: groupofuniquenames uniqueMember: uid=jwhitene,ou=People,dc=pcc,dc=edu cn: admins

我不确定您是否有兴趣连接到只读 LDAP 或读写。

但是请确保配置正确完成,并且您已按照文档中的步骤进行操作

[1] https://docs.wso2.com/display/IS500/Configuring+a+Read-only+LDAP+User+Store - 用于只读 LDAP 用户存储

[2] https://docs.wso2.com/display/IS500/Configuring+a+Read-write+LDAP+User+Store-用于读/写 LDAP 用户存储

如果您正确执行了这些步骤,请将您的 user-mgt.xml 配置与用户存储的完整配置一起发布,说明您希望以哪种模式连接哪个用户存储,并请复制服务器错误消息您从在 repository/logs 或服务器控制台中找到的 wso2carbon.log 文件中获取。

问候, 沙尼

根据您的 ldapsearch 命令结果,管理员用户名为 jwhitene 将解决启动错误。

例如 :

    <AdminUser>
        <UserName>jwhitene</UserName>
        <Password>xxxxxxxx</Password>
    </AdminUser>

解释 :

如果您要连接到只读用户存储,管理员用户应该在用户存储\ldap 中可用。

    <AdminUser>
        <UserName>cn=Directory Manager</UserName>
        <Password>xxxxxxxx</Password>
    </AdminUser>

    <Property name="UserSearchBase">ou=People,dc=pcc.edu,dc=cp</Property>
    <Property name="UserNameAttribute">uid</Property>

根据上面引用的 ldap 配置,身份服务器将在ou=People,dc=pcc.edu,dc=cp目录下查找属性uid设置为值cn=Directory Manager的用户

基本上如果有这样的用户,它会喜欢这个,

uid=cn\=Directory Manager,ou=People,dc=pcc.edu,dc=cp

由于您没有这样的用户,服务器会抱怨该错误日志并设置保持启动流程。

ldapsearch 命令结果中显示的用户 (uid=jwhitene,ou=People,dc=pcc,dc=edu) 将与上述搜索模式匹配。 因此,将 jwhitene 设置为管理员用户将解决问题

在 Ellucian 技术人员的帮助下,我的系统刚刚开始工作。 原因:我有一个旧版本的 OpenLDAP,它使用了与 user-mgt.xml 文件中的默认值不匹配的不同模式。

而不是ObjectClass=groupofuniquenames我使用ObjectClass=posixGroup (与我的 OpenLDAP 模式匹配)配置了我的 user-mgt.xml 文件。 我不得不在许多地方更改ObjectClass 之后,我的实例启动时没有任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM