我们已经安装了IS为KM(5.7)的WSO2AM 2.6.0。我们遵循官方文档上写的所有指令,将AM作为一个主动-主动全部部署,将IS作为KM主动-主动部署。根据文档,我们创建了以下数据库及其各自的数据源:regdb(注册表),carbondb,userdb(用户存储),mb-store,apimdb。
我们现在面临的问题是在信息系统方面。我们尝试了几种方法来检查一切是否正常,例如创建用户,检查注册表访问权限等。我们创建了一个名为“ test”的用户,对其属性进行了修改,等等,然后,我们删除该用户。删除用户后,在IS控制台上将显示以下弹出窗口:
查看日志,我们发现以下内容:
Caused by: org.postgresql.util.PSQLException: ERROR: relation "cm_receipt" does not exist
Position: 135
TID: [-1234] [] [2020-05-11 09:00:30,062] ERROR {org.wso2.carbon.user.mgt.ui.UserAdminClient} - Error when handling event : POST_DELETE_USER
org.wso2.carbon.user.mgt.stub.UserAdminUserAdminException: UserAdminUserAdminException
我们检查了数据库,已正确删除了用户,并且IS Carbon控制台不再显示它,因此已正确删除了用户。再检查一点,“删除”用户进程正在尝试访问carbondb上的表“ cm_receipt”,但是该表存在于apimdb上。
在postgres方面,我们在删除过程中有此日志:
<2020-05-08 11:49:50.452 -03:172.19.35.21(45740):wso2carbon@carbondb:[12476]:>ERROR: relation "cm_receipt" does not exist at character 135
<2020-05-08 11:49:50.452 -03:172.19.35.21(45740):wso2carbon@carbondb:[12476]:>STATEMENT: SELECT R.CONSENT_RECEIPT_ID, R.LANGUAGE, R.PII_PRINCIPAL_ID, R.PRINCIPAL_TENANT_ID, R.STATE,RS.SP_DISPLAY_NAME,RS.SP_DESCRIPTION FROM CM_RECEIPT R INNER JOIN CM_RECEIPT_SP_ASSOC RS ON R.CONSENT_RECEIPT_ID=RS.CONSENT_RECEIPT_ID WHERE PII_PRINCIPAL_ID LIKE $1 AND PRINCIPAL_TENANT_ID =$2 AND SP_NAME LIKE $3 AND STATE LIKE $4 ORDER BY ID ASC LIMIT $5 OFFSET $6
您知道为什么会发生吗?是否存在一些与错误相关的东西?
谢谢!
可能有两个原因。
/wso2is-5.7.0/dbscripts/consent/postgresql.sql
。wso2is-5.7.0/repository/conf/consent-mgt-config.xml
配置文件引用了错误的数据源。解决方案>>
检查consent-mgt-config.xml
文件所引用的数据源是什么。默认情况下是这样。
。然后转到<ConsentManager xmlns="http://wso2.org/carbon/consent/management" xmlns:svns="http://org.wso2.securevault/configuration"> <DataSource> <!-- Include a data source name (jndiConfigName) from the set of data sources defined in master-datasources .xml --> <Name>jdbc/WSO2IdentityDB</Name> </DataSource>
这里是jdbc / WSO2IdentityDB
wso2is-5.7.0/repository/conf/datasources/master-datasource.xml
文件并检查该数据源的数据库。如果未在该数据库中创建上述表,则可以在该数据库中执行上述postgre.sql脚本。 (如果已经在其他数据源中创建了这些表,则可能需要更改consent-mgt-config.xml
文件中定义的数据源。)P.S。请勿在启动时使用-Dsetup
参数来自动执行数据库脚本。始终对数据库手动执行数据库脚本。
P.S。用户删除成功的原因是此用户同意删除过程为POST_USER_DELETION
事件。 POST处理程序失败将不会影响操作本身。