Я использую TenantMgtAdminService https://is.docs.wso2.com/en/latest/develop/managing-tenants-with-apis/ для добавления клиентов к моему локальному серверу WSO2IS (версия 5.10.0 с postgresql). Я заметил следующее исключение на сервере при установке wso2is-admin@foodcompanyad123.com (который является действительным, но длиннее 31 символа адреса электронной почты) для tenantInfoBean.admin.
Caused by: java.sql.BatchUpdateException: Batch entry 5 INSERT INTO REG_LOG (REG_PATH, REG_USER_ID, REG_LOGGED_TIME, REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES ('/_system/governance/permission', 'wso2is-admin@foodcompanyad123.com', '2020-06-17 13:54:15.776+03', 0, NULL, 9) was aborted: ERROR: value too long for type character varying(31) Call getNextException to see other errors in the batch.
at org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:154)
at org.postgresql.core.ResultHandlerDelegate.handleError(ResultHandlerDelegate.java:50)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2269)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:511)
at org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:851)
at org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:874)
at org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1569)
at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
at com.sun.proxy.$Proxy53.executeBatch(Unknown Source)
at org.wso2.carbon.registry.core.jdbc.dao.JDBCLogsDAO.addLogRecords(JDBCLogsDAO.java:159)
... 3 more
Caused by: org.postgresql.util.PSQLException: ERROR: value too long for type character varying(31)
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2533)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2268)
... 13 more
Вызов addTenant () также генерирует следующее исключение, если длина имени пользователя admin плюс символ '@' плюс домен клиента (например, wso2is-admin@foodcompanyad123.com@foodcompanyad123.com) превышает 45 символов, как показано в следующей трассировке стека.
TID: [-1234] [TenantMgtAdminService] [2020-06-17 14:26:25,843] [9a69c7e4-661f-4713-b500-9f7e850f5c0d] ERROR {org.wso2.carbon.identity.workflow.impl.listener.WorkflowImplTenantMgtListener} - Error occurred while adding default bps profile for tenant: gondor-pizza-4.fts org.wso2.carbon.identity.workflow.impl.WorkflowImplException: Error when executing the sql query INSERT INTO WF_BPS_PROFILE(PROFILE_NAME, HOST_URL_MANAGER, HOST_URL_WORKER, USERNAME, PASSWORD, TENANT_ID) VALUES (?, ?, ?, ?, ?, ?)
at org.wso2.carbon.identity.workflow.impl.dao.BPSProfileDAO.addProfile(BPSProfileDAO.java:75)
at org.wso2.carbon.identity.workflow.impl.WorkflowImplServiceImpl.addBPSProfile(WorkflowImplServiceImpl.java:89)
...
...
...
Caused by: org.postgresql.util.PSQLException: ERROR: value too long for type character varying(45)
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2533)
Связанные на второй график выше, я обнаружил эту проблему https://github.com/wso2/product-is/issues/5460, которая остается открытой.
Как лучше всего решить эти проблемы? Нужно ли мне изменять схему, чтобы увеличить лимиты? Есть ли другой способ?