使用JDBC用户存储设置时,wso2身份服务器5.10.0出现错误

时间:2020-04-04 14:49:36

标签: wso2 wso2is

我正在尝试设置wso2身份服务器5.10.0遇到错误UM_USER_ID not able to insert admin user。 dbscript中有问题吗

ID:[-1] [] [2020-04-02 23:32:40,143] []信息{org.wso2.carbon.mex2.internal.DynamicCRMCustomMexComponent}-DynamicCRMSupport MexServiceComponent捆绑包已成功激活。 TID:[-1234] [] [2020-04-02 23:32:44,277] []错误{org.wso2.carbon.user.core.common.DefaultRealm}-nullType类java.lang.reflect.InvocationTargetException org。 wso2.carbon.user.core.UserStoreException:nullType类java.lang.reflect.InvocationTargetException 在org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:397) 在org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:224) 在org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:129) 在org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:276) 在org.wso2.carbon.user.core.common.DefaultRealmService。(DefaultRealmService.java:102) 在org.wso2.carbon.user.core.common.DefaultRealmService上。(DefaultRealmService.java:115) 在org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:72) 在org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61) 在org.eclipse.osgi.internal.framework.BundleContextImpl $ 3.run(BundleContextImpl.java:842) 在org.eclipse.osgi.internal.framework.BundleContextImpl $ 3.run(BundleContextImpl.java:1) 在java.security.AccessController.doPrivileged(本机方法) 在org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834) 在org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791) 在org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1013) 在org.eclipse.osgi.internal.framework.EquinoxBundle $ EquinoxModule.startWorker(EquinoxBundle.java:365) 在org.eclipse.osgi.container.Module.doStart(Module.java:598) 在org.eclipse.osgi.container.Module.start(Module.java:462) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel $ 1.run(ModuleContainer.java:1820) 在org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor $ 2 $ 1.execute(EquinoxContainerAdaptor.java:150) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.incStartLevel(ModuleContainer.java:1813) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.incStartLevel(ModuleContainer.java:1770) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1735) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.dispatchEvent(ModuleContainer.java:1661) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) 在org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) 在org.eclipse.osgi.framework.eventmgr.EventManager $ EventThread.run(EventManager.java:345) 造成原因:java.lang.reflect.InvocationTargetException 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)处 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:351) ...另外25个 原因:org.wso2.carbon.user.core.UserStoreException:尚未创建管理员用户。在主用户存储中创建Admin用户时发生错误。 在org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:8377) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager。(JDBCUserStoreManager.java:319) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager。(JDBCUserStoreManager.java:258) ...另外30个 由以下原因引起:org.wso2.carbon.user.core.UserStoreException:保留用户时出错:admin 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.persistUser(JDBCUserStoreManager.java:1544) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.doAddUser(JDBCUserStoreManager.java:1390) 在org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:8366) ...更多32 引起原因:org.wso2.carbon.user.core.UserStoreException:将字符串值更新到数据库时发生错误。 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.updateStringValuesToDatabase(JDBCUserStoreManager.java:2558) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.persistUser(JDBCUserStoreManager.java:1436) ...另外34个 由以下原因引起:com.microsoft.sqlserver.jdbc.SQLServerException:无法将值NULL插入表“ LWSO2_USERSTORE_DB.dbo.UM_USER”的“ UM_USER_ID”列中;列不允许为空。 INSERT失败。 在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1635) 在com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:426) 在com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement $ PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:372) 在com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6276) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1794) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:184) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:159) 在com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:315) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.apache.tomcat.jdbc.pool.StatementFacade $ StatementProxy.invoke(StatementFacade.java:114) 在com.sun.proxy。$ Proxy53.executeUpdate(未知来源) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.updateStringValuesToDatabase(JDBCUserStoreManager.java:2535) ...另外35个

TID:[-1234] [] [2020-04-02 23:32:44,302] []错误{org.wso2.carbon.user.core.internal.Activator}-无法启动User Manager Core bundle org。 wso2.carbon.user.core.UserStoreException:无法初始化领域。 在org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:286) 在org.wso2.carbon.user.core.common.DefaultRealmService。(DefaultRealmService.java:102) 在org.wso2.carbon.user.core.common.DefaultRealmService上。(DefaultRealmService.java:115) 在org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:72) 在org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61) 在org.eclipse.osgi.internal.framework.BundleContextImpl $ 3.run(BundleContextImpl.java:842) 在org.eclipse.osgi.internal.framework.BundleContextImpl $ 3.run(BundleContextImpl.java:1) 在java.security.AccessController.doPrivileged(本机方法) 在org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834) 在org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791) 在org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1013) 在org.eclipse.osgi.internal.framework.EquinoxBundle $ EquinoxModule.startWorker(EquinoxBundle.java:365) 在org.eclipse.osgi.container.Module.doStart(Module.java:598) 在org.eclipse.osgi.container.Module.start(Module.java:462) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel $ 1.run(ModuleContainer.java:1820) 在org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor $ 2 $ 1.execute(EquinoxContainerAdaptor.java:150) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.incStartLevel(ModuleContainer.java:1813) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.incStartLevel(ModuleContainer.java:1770) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1735) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.dispatchEvent(ModuleContainer.java:1661) 在org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) 在org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) 在org.eclipse.osgi.framework.eventmgr.EventManager $ EventThread.run(EventManager.java:345) 引起原因:org.wso2.carbon.user.core.UserStoreException:nullType类java.lang.reflect.InvocationTargetException 在org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:318) 在org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:129) 在org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:276) ...另外22个 引起原因:org.wso2.carbon.user.core.UserStoreException:nullType类java.lang.reflect.InvocationTargetException 在org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:397) 在org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:224) ...另外24个 造成原因:java.lang.reflect.InvocationTargetException 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)处 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:351) ...另外25个 原因:org.wso2.carbon.user.core.UserStoreException:尚未创建管理员用户。在主用户存储中创建Admin用户时发生错误。 在org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:8377) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager。(JDBCUserStoreManager.java:319) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager。(JDBCUserStoreManager.java:258) ...另外30个 由以下原因引起:org.wso2.carbon.user.core.UserStoreException:保留用户时出错:admin 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.persistUser(JDBCUserStoreManager.java:1544) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.doAddUser(JDBCUserStoreManager.java:1390) 在org.wso2.carbon.user.core.common.AbstractUserStoreManager.addInitialAdminData(AbstractUserStoreManager.java:8366) ...更多32 由以下原因引起:org.wso2.carbon.user.core.UserStoreException:将字符串值更新到数据库时发生错误。 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.updateStringValuesToDatabase(JDBCUserStoreManager.java:2558) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.persistUser(JDBCUserStoreManager.java:1436) ...另外34个 由以下原因引起:com.microsoft.sqlserver.jdbc.SQLServerException:无法将值NULL插入表“ LWSO2_USERSTORE_DB.dbo.UM_USER”的“ UM_USER_ID”列中;列不允许为空。 INSERT失败。 在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1635) 在com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:426) 在com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement $ PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:372) 在com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6276) 在com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1794) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:184) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:159) 在com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:315) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.apache.tomcat.jdbc.pool.StatementFacade $ StatementProxy.invoke(StatementFacade.java:114) 在com.sun.proxy。$ Proxy53.executeUpdate(未知来源) 在org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.updateStringValuesToDatabase(JDBCUserStoreManager.java:2535) ...另外35个

1 个答案:

答案 0 :(得分:2)

从WSO2 IS 5.10.0起,所有用户存储区管理员都将UniqueID作为用户存储区管理员名称的一部分包括在内(例如,UniqueIDJDBCUserStoreManager)。没有唯一ID作为用户存储管理器名称一部分的用户存储管理器仅可用于向后兼容目的,并且仅当您从WSO2 Identity Server的早期版本迁移时才可以使用。

您发现的问题是由于将新模式与旧JDBCUserStoremanager一起使用而发生的。只需将您的userstore经理类更改为UniqueIDJDBCUserStoreManager即可解决此问题。

如果使用旧的JDBCUserStoreManager,则必须使用旧的架构来创建表。区别在于,新SCHEMA的UM_USER表中存在UM_USER_ID列。

[1] https://is.docs.wso2.com/en/5.10.0/setup/configuring-secondary-user-stores/