Generic REST Collector fails with 'com.aveksa.client.genericrest.GenericRestException: UNEVEN_JSON_PATH_CONFIGURATION' in RSA Identity Governance & Lifecycle
Originally Published: 2020-04-22
Article Number
Applies To
RSA Version/Condition: 7.2.0
Issue
Collector test failed:
com.aveksa.server.runtime.ServerException: Test request failed with response: com.aveksa.server.runtime.ServerException: com.aveksa.common.DataReadException: com.aveksa.client.genericrest.GenericRestException: UNEVEN_JSON_PATH_CONFIGURATION {$.Resources[*].active=5, $.Resources[*].userName=5, $.Resources[*].[*].workerInformation.personNumber=0}. Caused by com.aveksa.client.genericrest.GenericRestException: UNEVEN_JSON_PATH_CONFIGURATION {$.Resources[*].active=5, $.Resources[*].userName=5, $.Resources[*].[*].workerInformation.personNumber=0} Caused By Stack com.aveksa.common.DataReadException: com.aveksa.client.genericrest.GenericRestException: UNEVEN_JSON_PATH_CONFIGURATION {$.Resources[*].active=5, $.Resources[*].userName=5, $.Resources[*].[*].workerInformation.personNumber=0} at com.aveksa.collector.generic.rest.adc.GenericRESTAccountDataIterator.next(GenericRESTAccountDataIterator.java:71) at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collectData(AccountDataCollector.java:422) at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collect(AccountDataCollector.java:302) at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collectTestData(AccountDataCollector.java:277) at com.aveksa.client.datacollector.framework.DataCollectorManager.collect(DataCollectorManager.java:481) at com.aveksa.client.component.collector.DefaultCollectorManager.actUpon(DefaultCollectorManager.java:204) at com.aveksa.client.component.collector.DefaultCollectorManager.handle(DefaultCollectorManager.java:102) at com.aveksa.client.component.event.DefaultEventManager.handle(DefaultEventManager.java:75) at com.aveksa.client.datacollector.framework.SimpleEventSource.notifyListeners(SimpleEventSource.java:67) at com.aveksa.client.component.communication.DefaultCommunicationManager.notifyEvent(DefaultCommunicationManager.java:377) at com.aveksa.client.component.communication.ChangeListHandler.applyChanges(ChangeListHandler.java:364) at com.aveksa.client.component.communication.ChangeListHandler.access$300(ChangeListHandler.java:58) at com.aveksa.client.component.communication.ChangeListHandler$ChangeApplyingRunnable.run(ChangeListHandler.java:275) at java.lang.Thread.run(Thread.java:748) Caused by: com.aveksa.client.genericrest.GenericRestException: UNEVEN_JSON_PATH_CONFIGURATION {$.Resources[*].active=5, $.Resources[*].userName=5, $.Resources[*].[*].workerInformation.personNumber=0} at com.aveksa.client.genericrest.GenericRestException.parsingError(GenericRestException.java:100) at com.aveksa.client.genericrest.postprocessor.response.JSONResponseHandler.parseResponseForDataCount(JSONResponseHandler.java:64) at com.aveksa.client.genericrest.postprocessor.response.JSONResponseHandler.parseResponseForData(JSONResponseHandler.java:108) at com.aveksa.client.genericrest.postprocessor.impl.GenericRESTPostprocessorImpl.getParsedData(GenericRESTPostprocessorImpl.java:90) at com.aveksa.client.genericrest.GenericRESTClient.executeTestCollection(GenericRESTClient.java:173) at com.aveksa.collector.generic.rest.adc.GenericRESTAccountDataIterator.collectAccountData(GenericRESTAccountDataIterator.java:155) at com.aveksa.collector.generic.rest.adc.GenericRESTAccountDataIterator.next(GenericRESTAccountDataIterator.java:68) ... 13 more End Stack
In the following example the JSON array contains workerinformation only if the account is linked to an identity. Service accounts do not have workerinformation. This results in an uneven JSON array where the service accounts have less array elements than the identity accounts. Note that identity account cblossom has workerinformation and service accounts fa_operator and fa_guest do not have workerinformation.
{
"itemsPerPage" : 50,
"startIndex" : 1,
"Resources" : [{
"id" : "47XXXXXXXXXXXXXXXXXXXXXXXXXXXX6D",
"schemas" : [ "urn:scim:schemas:core:2.0:User", "urn:scim:schemas:extension:fa:2.0:faUser" ],
"userName" : "fa_operator",
"urn:scim:schemas:extension:fa:2.0:faUser" : {
"userCategory" : "DEFAULT"
},
"active" : true
}, {
"id" : "4AXXXXXXXXXXXXXXXXXXXXXXXXXXXX48",
"schemas" : [ "urn:scim:schemas:core:2.0:User", "urn:scim:schemas:extension:fa:2.0:faUser" ],
"userName" : "fa_guest",
"urn:scim:schemas:extension:fa:2.0:faUser" : {
"userCategory" : "DEFAULT"
},
"active" : true
}, {
"id" : "51XXXXXXXXXXXXXXXXXXXXXXXXXXXX5A",
"schemas" : [ "urn:scim:schemas:core:2.0:User", "urn:scim:schemas:extension:fa:2.0:faUser" ],
"userName" : "cblossom@mailinator.com",
"urn:scim:schemas:extension:fa:2.0:faUser" : {
"userCategory" : "DEFAULT",
"accountType" : "Person",
"workerInformation" : {
"personNumber" : "99999",
"manager" : "null",
"department" : "null"
}
},
"active" : false
} ]
}
The JSON parsing looks like this:
Note that if the personNumber Collector Mapping Parameter is removed, the error does not occur.
Cause
This error is caused by parsing a Collector Mapping Parameter that is not part of every array element in the JSON array. In the above example, personNumber is part of workerinformation which is not part of every array element. Removing this parameter, leaves only fields AccountID and isActive which belong to all array elements and do not cause the error.
Resolution
Workaround
Related Articles
No enum constant com.aveksa.server.report.Report.SaveAsType.XLS reported in RSA Identity Governance & Lifecycle 30Number of Views 'Request could not be handled' and 'No enum constant com.aveksa.server.core.DataCollector.Status.InActive' errors exportin… 162Number of Views Authentication Token is showing in plain text in the Metadata Export for Generic REST collector in RSA Governance & Lifecycle 24Number of Views '[Ljava.lang.StackTraceElement;@382839bd 0 [main] ERROR com.aveksa.cli.BaseExecCLIModule' error backing up (exporting) th… 473Number of Views Generic REST AFX Connector fails with ValidationError in RSA Identity Governance & Lifecycle 127Number of Views
Trending Articles
RSA Authentication Manager Upgrade Process RSA Release Notes for RSA Authentication Manager 8.8 RSA RADIUS Server service failed to start in the RSA Authentication Manager 8.1 Operations Console Microsoft Entra ID External MFA - Relying Party Configuration Using OIDC - RSA Ready Implementation Guide RSA Release Notes: Cloud Access Service and RSA Authenticators
Don't see what you're looking for?