[英]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">(&(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">(&(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.