Hi all,
I’m currently evaluating Apache Syncope for my institution and have setup a
connector server with a csvdir bundle installed. After setting up the connector
and adding the resource I want to start a pull task to see if it is working.
The Problem is that the execution of the pull tasks always errors out with the
following stacktrace <https://pastebin.com/Wfgat5Q0>:
org.quartz.JobExecutionException: While pulling from connector [See nested
exception:
org.identityconnectors.framework.impl.api.remote.RemoteWrappedException:
org.identityconnectors.framework.common.exceptions.ConnectorIOException:
java.lang.IllegalStateException: java.sql.SQLSyntaxErrorException: user lacks
privilege or object not found: USER_EX10716 in statement [SELECT * FROM
USER_EX10716]]
at
org.apache.syncope.core.provisioning.java.pushpull.PullJobDelegate.doExecuteProvisioning(PullJobDelegate.java:385)
at
org.apache.syncope.core.provisioning.java.pushpull.PullJobDelegate.doExecuteProvisioning(PullJobDelegate.java:78)
at
org.apache.syncope.core.provisioning.java.pushpull.AbstractProvisioningJobDelegate.doExecute(AbstractProvisioningJobDelegate.java:702)
at
org.apache.syncope.core.provisioning.java.job.AbstractSchedTaskJobDelegate.execute(AbstractSchedTaskJobDelegate.java:155)
Which I think comes from a HSQLD used by the connector? I’m on my wit’s end
about it and would greatly appreciate if someone could point me towards a
solution.
Thank you
--- Some more hopefully helpful information ---
Connector:
[
{
"key": "018b38c5-07b2-7d6a-a08c-e706f3745cda",
"errored": false,
"adminRealm": "/",
"location": "connids://*****@127.0.0.1:8759?trustAllCerts=true",
"connectorName": "net.tirasa.connid.bundles.csvdir.CSVDirConnector",
"bundleName": "net.tirasa.connid.bundles.csvdir",
"version": "0.8.9",
"conf": [
{
"schema": {
"name": "sourcePath",
"displayName": "Source path",
"helpMessage": "Absolute path of a directory where the CSV files to be
processed are located",
"type": "java.lang.String",
"required": true,
"order": 1,
"confidential": false,
"defaultValues": []
},
"values": [
"/Filepath/"
],
"overridable": false
},
{
"schema": {
"name": "fileMask",
"displayName": "File mask",
"helpMessage": "Regular expression describing files to be processed",
"type": "java.lang.String",
"required": true,
"order": 2,
"confidential": false,
"defaultValues": []
},
"values": [
"fileName.csv"
],
"overridable": false
},
{
"schema": {
"name": "encoding",
"displayName": "File encoding",
"helpMessage": "Basic encoding of the file",
"type": "java.lang.String",
"required": false,
"order": 3,
"confidential": false,
"defaultValues": [
"UTF-8"
]
},
"values": [
"UTF-8"
],
"overridable": false
},
{
"schema": {
"name": "fieldDelimiter",
"displayName": "Field delimiter",
"helpMessage": "Delimiter used to separate fields in CSV files. Default is
\",\".",
"type": "char",
"required": false,
"order": 4,
"confidential": false,
"defaultValues": [
","
]
},
"values": [
"§"
],
"overridable": false
},
{
"schema": {
"name": "textQualifier",
"displayName": "Text qualifier",
"helpMessage": "Delimiter to determine beginning and end of text in value.
Default is \".",
"type": "char",
"required": false,
"order": 5,
"confidential": false,
"defaultValues": [
"\""
]
},
"values": [
"\""
],
"overridable": false
},
{
"schema": {
"name": "keyColumnNames",
"displayName": "Key column name",
"helpMessage": "Name of the column used to identify user uniquely",
"type": "[Ljava.lang.String;",
"required": true,
"order": 6,
"confidential": false,
"defaultValues": []
},
"values": [
"campusnet_id",
"studyid"
],
"overridable": false
},
{
"schema": {
"name": "passwordColumnName",
"displayName": "Password column name",
"helpMessage": "Name of the column used to specify user password",
"type": "java.lang.String",
"required": false,
"order": 7,
"confidential": false,
"defaultValues": []
},
"values": [],
"overridable": false
},
{
"schema": {
"name": "deleteColumnName",
"displayName": "Delete column name",
"helpMessage": "Name of the column used to specify users to be
deleted",
"type": "java.lang.String",
"required": false,
"order": 8,
"confidential": false,
"defaultValues": []
},
"values": [],
"overridable": false
},
{
"schema": {
"name": "quotationRequired",
"displayName": "Value quotation required",
"helpMessage": "Specify if value quotation is required. Default is
true.",
"type": "java.lang.Boolean",
"required": false,
"order": 9,
"confidential": false,
"defaultValues": [
true
]
},
"values": [
"false"
],
"overridable": false
},
{
"schema": {
"name": "fields",
"displayName": "Column names",
"helpMessage": "Column names",
"type": "[Ljava.lang.String;",
"required": true,
"order": 10,
"confidential": false,
"defaultValues": []
},
"values": [
"Matr.Nr.",
"Nachname",
"Vorname",
"Gs",
"WahlFB",
"Semester",
"RMdatum",
"Mittelname",
"Titel",
"Geburtsname",
"NamePrefix",
"NameAdd",
"Geburtsdatum",
"ErstSem",
"Strasse",
"PLZ",
"Ort",
"Land",
"campusnet_id",
"initpin",
"studyid",
"WahlFS",
"Fach1",
"Fachsem1",
"Fach2",
"Fachsem2",
"Fach3",
"Fachsem3",
"Fach4",
"Fachsem4",
"akteurtyp"
],
"overridable": false
},
{
"schema": {
"name": "ignoreHeader",
"displayName": "Ignore header",
"helpMessage": "Specify if first line of the file must be ignored. Default
is true.",
"type": "java.lang.Boolean",
"required": false,
"order": 11,
"confidential": false,
"defaultValues": [
true
]
},
"values": [
"true"
],
"overridable": false
},
{
"schema": {
"name": "keyseparator",
"displayName": "Key separator",
"helpMessage": "Character used to separate keys in a multi-key scenario. Default is
\",\".",
"type": "java.lang.String",
"required": false,
"order": 12,
"confidential": false,
"defaultValues": [
","
]
},
"values": [
","
],
"overridable": false
},
{
"schema": {
"name": "multivalueSeparator",
"displayName": "Multi value separator",
"helpMessage": "Character used to separate values in a multi-value
scenario. Multivalue unsupported if not provided.",
"type": "java.lang.String",
"required": false,
"order": 13,
"confidential": false,
"defaultValues": []
},
"values": [],
"overridable": false
},
{
"schema": {
"name": "defaultStatusValue",
"displayName": "Default Status Value",
"helpMessage": "Enter the value for status in case of status not specified. Default
is \"true\".",
"type": "java.lang.String",
"required": false,
"order": 14,
"confidential": false,
"defaultValues": [
"true"
]
},
"values": [
"true"
],
"overridable": false
},
{
"schema": {
"name": "disabledStatusValue",
"displayName": "Disabled Status Value",
"helpMessage": "Specify a value for disabled status. Default is
\"false\".",
"type": "java.lang.String",
"required": false,
"order": 15,
"confidential": false,
"defaultValues": [
"false"
]
},
"values": [
"false"
],
"overridable": false
},
{
"schema": {
"name": "enabledStatusValue",
"displayName": "Enable Status Value",
"helpMessage": "Specify a value for enabled status. Default is
\"true\".",
"type": "java.lang.String",
"required": false,
"order": 16,
"confidential": false,
"defaultValues": [
"true"
]
},
"values": [
"true"
],
"overridable": false
},
{
"schema": {
"name": "statusColumn",
"displayName": "Status Column name",
"helpMessage": "Status column name.",
"type": "java.lang.String",
"required": false,
"order": 17,
"confidential": false,
"defaultValues": []
},
"values": [],
"overridable": false
},
{
"schema": {
"name": "objectClassColumn",
"displayName": "ObjectClass Column Name",
"helpMessage": "Column name identifying identity record type",
"type": "java.lang.String",
"required": false,
"order": 18,
"confidential": false,
"defaultValues": []
},
"values": [],
"overridable": false
},
{
"schema": {
"name": "objectClass",
"displayName": "Supported Object Classes",
"helpMessage": "Supported object classes (__ACCOUNT__ as default if
empty)",
"type": "[Ljava.lang.String;",
"required": false,
"order": 19,
"confidential": false,
"defaultValues": [
"__ACCOUNT__"
]
},
"values": [
"CONTRACT"
],
"overridable": false
}
],
"capabilities": [
"SEARCH"
],
"displayName": "remoteCSV",
"connRequestTimeout": 10,
"poolConf": null
}
]
Pulltask:
{
"prev": null,
"next": null,
"result": [
{
"_class": "org.apache.syncope.common.lib.to.PullTaskTO",
"key": "018b4347-f95c-7a42-bcbd-ef19f28934fb",
"start": "2023-10-18T16:54:37.881+02:00",
"end": "2023-10-18T16:54:38.058+02:00",
"latestExecStatus": "FAILURE",
"lastExecutor": "admin",
"executions": [
{
"start": "2023-10-18T16:54:37.881+02:00",
"end": "2023-10-18T16:54:38.058+02:00",
"key": "018b4348-0f39-7306-8fef-328f11f795fb",
"jobType": "TASK",
"refKey": "018b4347-f95c-7a42-bcbd-ef19f28934fb",
"refDesc": "PULL Task 018b4347-f95c-7a42-bcbd-ef19f28934fb
FullRecoPull",
"status": "FAILURE",
"message": "very long stacktrace",
"executor": "admin"
}
],
"startAt": null,
"cronExpression": null,
"jobDelegate": null,
"name": "FullRecoPull",
"description": null,
"lastExec": "2023-10-18T16:54:37.881+02:00",
"nextExec": null,
"active": true,
"resource": "TUCaNImportCSV",
"performCreate": true,
"performUpdate": true,
"performDelete": false,
"syncStatus": false,
"unmatchingRule": "IGNORE",
"matchingRule": "UPDATE",
"actions": [],
"concurrentSettings": null,
"pullMode": "FULL_RECONCILIATION",
"reconFilterBuilder": null,
"destinationRealm": "/",
"remediation": false,
"templates": {}
}
],
"page": 1,
"size": 1,
"totalCount": 1
}