product-is icon indicating copy to clipboard operation
product-is copied to clipboard

Unable to Update Google Connector after Configuring Outbound Provisioning for Google

Open NilukaSripalim opened this issue 1 year ago • 0 comments

Describe the issue:

This is Postgres specific issue Encountering an issue where I'm unable to update the Google connector after configuring outbound provisioning settings for Google in WSO2 Identity Server.

Note : problem with inserting a value into the database table IDP_PROV_CONFIG_PROPERTY. Specifically, the value being inserted into the column PROPERTY_VALUE is too long for the type character varying(2048).

How to reproduce:

Select Google Connector: Choose the "Google" connector from the list of available connectors./ Create a new Google connection Go to outbound provisioning Tab and enter the following details to configure the Google outbound connector.

Fill in Configuration Details:

  • Enter the name of the Google domain used to provision users
  • Provide the Claim URI that will be used to retrieve the primary email address of the created account
  • Enter the Claim URI used to retrieve the given name attribute of the user
  • Provide the Claim URI used to retrieve the family name attribute of the user.
  • Specify the email used for authentication
  • Browse and attach the private key from your local machine. This is the PKCS12 private key generated during service account creation.
  • Enter the email of the administrator who owns the service account in the specified Google Domain.
  • Provide a name for your application to identify requests made by the Google client.
  • Define the pattern used by WSO2 Identity Server to build the user ID of the provisioned user account (e.g., {UD,UN,TD,IDP}).
  • Specify the separator used to separate provisioning pattern attributes of the user ID (e.g., -(hyphen)).
  • Save Configuration:
  1. Attempt to update the Google connector.

Expected behavior: The Google connector should be updated successfully after configuring outbound provisioning settings for Google.

Environment information (Please complete the following information; remove any unnecessary fields) :

  • Product Version:wso2is-7.0.0-rc3
  • OS: Mac
  • Database: Postgres
  • Userstore: JDBC

outbound_provisioning.webm

 [ec64f38c-c717-4ad9-833a-0fd59d1a9515] ERROR {org.wso2.carbon.identity.api.server.idp.v1.core.ServerIdpManagementService} - errorCode: IDP-65033 | message: Error occurred while updating Identity Provider information  for tenant -1234 org.wso2.carbon.idp.mgt.IdentityProviderManagementException: Error occurred while updating Identity Provider information  for tenant -1234
	at org.wso2.carbon.idp.mgt.dao.IdPManagementDAO.updateIdPWithResourceId(IdPManagementDAO.java:4218)
	at org.wso2.carbon.idp.mgt.dao.CacheBackedIdPMgtDAO.updateIdP(CacheBackedIdPMgtDAO.java:604)
	at org.wso2.carbon.idp.mgt.IdentityProviderManager.updateIDP(IdentityProviderManager.java:1882)
	at org.wso2.carbon.idp.mgt.IdentityProviderManager.updateIdPByResourceId(IdentityProviderManager.java:1857)
	at org.wso2.carbon.identity.api.server.idp.v1.core.ServerIdpManagementService.updateFederatedAuthenticator(ServerIdpManagementService.java:738)
	at org.wso2.carbon.identity.api.server.idp.v1.impl.IdentityProvidersApiServiceImpl.updateFederatedAuthenticator(IdentityProvidersApiServiceImpl.java:262)
	at org.wso2.carbon.identity.api.server.idp.v1.IdentityProvidersApi.updateFederatedAuthenticator(IdentityProvidersApi.java:770)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179)
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201)
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104)
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265)
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:304)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:234)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:279)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:425)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:357)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:294)
	at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:147)
	at org.wso2.carbon.identity.context.rewrite.valve.OrganizationContextRewriteValve.invoke(OrganizationContextRewriteValve.java:123)
	at org.wso2.carbon.tomcat.ext.valves.SameSiteCookieValve.invoke(SameSiteCookieValve.java:38)
	at org.wso2.carbon.identity.cors.valve.CORSValve.invoke(CORSValve.java:83)
	at org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:183)
	at org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:144)
	at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:110)
	at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
	at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:71)
	at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:152)
	at org.wso2.carbon.extension.identity.x509Certificate.valve.X509CertificateAuthenticationValve.invoke(X509CertificateAuthenticationValve.java:59)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
	at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:63)
	at org.wso2.carbon.tomcat.ext.valves.RequestEncodingValve.invoke(RequestEncodingValve.java:49)
	at org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(RequestCorrelationIdValve.java:137)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.sql.BatchUpdateException: Batch entry 1 INSERT INTO IDP_PROV_CONFIG_PROPERTY (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY, PROPERTY_VALUE, PROPERTY_BLOB_VALUE, PROPERTY_TYPE, IS_SECRET) VALUES (-1234, 20, 'google_prov_private_key', '<Private Key_Value>', ?, 'STRING', '0') was aborted: ERROR: value too long for type character varying(2048)  Call getNextException to see other errors in the batch.
	at org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:170)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:573)
	at org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:905)
	at org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:928)
	at org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:118)
	at com.sun.proxy.$Proxy54.executeBatch(Unknown Source)
	at org.wso2.carbon.idp.mgt.dao.IdPManagementDAO.addProvisioningConnectorConfigs(IdPManagementDAO.java:1889)
	at org.wso2.carbon.idp.mgt.dao.IdPManagementDAO.updateProvisioningConnectorConfigs(IdPManagementDAO.java:1936)
	at org.wso2.carbon.idp.mgt.dao.IdPManagementDAO.updateIdPWithResourceId(IdPManagementDAO.java:4180)
	... 62 more
Caused by: org.postgresql.util.PSQLException: ERROR: value too long for type character varying(2048)
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2712)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2400)
	... 74 more

NilukaSripalim avatar Feb 22 '24 06:02 NilukaSripalim