[midPoint] Scripted SQL Connector
Stephen Barker
sbarker at illinois.edu
Wed Mar 16 15:39:52 CET 2016
Sure Thing! It's really basic. The password has been stripped out of
this configuration.
<resource xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"
xmlns:t="http://prism.evolveum.com/xml/ns/public/types-3"
xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
oid="fe1b0541-9b77-4019-9c76-384839cc09aa"
version="15">
<name>UIC IAM Sim</name>
<metadata>
<modifyTimestamp>2016-03-16T08:51:09.824-05:00</modifyTimestamp>
<modifierRef
xmlns:tns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
oid="00000000-0000-0000-0000-000000000002"
type="tns:UserType"/>
<modifyChannel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</modifyChannel>
</metadata>
<operationalState>
<lastAvailabilityStatus>up</lastAvailabilityStatus>
</operationalState>
<connectorRef oid="3bd53df6-3b55-4aa8-a163-7522424926ea"
type="c:ConnectorType"><!-- ICF
net.tirasa.connid.bundles.db.scriptedsql.ScriptedSQLConnector v2.2.3
--></connectorRef>
<connectorConfiguration
xmlns:icfc="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/connector-schema-3">
<icfc:configurationProperties
xmlns:gen808="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/net.tirasa.connid.bundles.db.scriptedsql/net.tirasa.connid.bundles.db.scriptedsql.ScriptedSQLConnector">
<gen808:searchScript>/opt/midpoint/config/scripted_connectors/uic_iam_scripts/SearchScript.groovy</gen808:searchScript>
<gen808:schemaScriptFileName>/opt/midpoint/config/scripted_connectors/uic_iam_scripts/SchemaScript.groovy</gen808:schemaScriptFileName>
<gen808:reloadScriptOnExecution>true</gen808:reloadScriptOnExecution>
<gen808:scriptingLanguage>GROOVY</gen808:scriptingLanguage>
<gen808:user>simuser1</gen808:user>
<gen808:password>
</gen808:password>
<gen808:jdbcDriver>com.mysql.jdbc.Driver</gen808:jdbcDriver>
<gen808:jdbcUrlTemplate>jdbc:mysql://localhost/uiciam</gen808:jdbcUrlTemplate>
<gen808:enableEmptyString>true</gen808:enableEmptyString>
<gen808:rethrowAllSQLExceptions>true</gen808:rethrowAllSQLExceptions>
<gen808:nativeTimestamps>true</gen808:nativeTimestamps>
<gen808:allNative>true</gen808:allNative>
</icfc:configurationProperties>
</connectorConfiguration>
<schema>
<cachingMetadata>
<retrievalTimestamp>2016-03-16T07:50:43.289-05:00</retrievalTimestamp>
<serialNumber>79d159e001005ada-ff062151864db51c</serialNumber>
</cachingMetadata>
<definition>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ra="http://midpoint.evolveum.com/xml/ns/public/resource/annotation-3"
xmlns:tns="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
xmlns:a="http://prism.evolveum.com/xml/ns/public/annotation-3"
elementFormDefault="qualified"
targetNamespace="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3">
<xsd:import
namespace="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"/>
<xsd:import
namespace="http://prism.evolveum.com/xml/ns/public/annotation-3"/>
<xsd:import
namespace="http://midpoint.evolveum.com/xml/ns/public/resource/annotation-3"/>
<xsd:complexType name="AccountObjectClass">
<xsd:annotation>
<xsd:appinfo>
<ra:resourceObject/>
<ra:identifier>icfs:uid</ra:identifier>
<ra:secondaryIdentifier>icfs:name</ra:secondaryIdentifier>
<ra:displayNameAttribute>icfs:name</ra:displayNameAttribute>
<ra:namingAttribute>icfs:name</ra:namingAttribute>
<ra:nativeObjectClass>__ACCOUNT__</ra:nativeObjectClass>
<ra:kind>account</ra:kind>
<ra:default>true</ra:default>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="netid"
type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<a:displayOrder>120</a:displayOrder>
<ra:frameworkAttributeName>netid</ra:frameworkAttributeName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element ref="icfs:name">
<xsd:annotation>
<xsd:appinfo>
<a:displayName>ConnId Name</a:displayName>
<a:displayOrder>110</a:displayOrder>
<ra:frameworkAttributeName>__NAME__</ra:frameworkAttributeName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" name="identity_id"
type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<a:displayOrder>130</a:displayOrder>
<ra:frameworkAttributeName>identity_id</ra:frameworkAttributeName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" name="uin" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<a:displayOrder>140</a:displayOrder>
<ra:frameworkAttributeName>uin</ra:frameworkAttributeName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" name="netid_id"
type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<a:displayOrder>150</a:displayOrder>
<ra:frameworkAttributeName>netid_id</ra:frameworkAttributeName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" ref="icfs:uid">
<xsd:annotation>
<xsd:appinfo>
<a:displayName>ConnId UID</a:displayName>
<a:displayOrder>100</a:displayOrder>
<a:access>read</a:access>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</definition>
</schema>
<capabilities>
<cachingMetadata>
<retrievalTimestamp>2016-03-16T07:50:43.293-05:00</retrievalTimestamp>
<serialNumber>b830b522bf88fde3-65dceef39aa140d</serialNumber>
</cachingMetadata>
<native
xmlns:cap="http://midpoint.evolveum.com/xml/ns/public/resource/capabilities-3">
<cap:addRemoveAttributeValues/>
<cap:activation>
<cap:status/>
<cap:lockoutStatus/>
</cap:activation>
<cap:credentials>
<cap:password>
<cap:returnedByDefault>false</cap:returnedByDefault>
</cap:password>
</cap:credentials>
<cap:liveSync/>
<cap:testConnection/>
<cap:create/>
<cap:read/>
<cap:update/>
<cap:delete/>
<cap:script>
<cap:host>
<cap:type>connector</cap:type>
</cap:host>
</cap:script>
</native>
</capabilities>
</resource>
Thanks,
Stephen Barker
Senior Software Engineer - AITS
University of Illinois
sbarker at uillinois.edu
265-0942
--
"we tend to be masters of our own fate, the only thing that stops us
from doing really cool things is time." -- Monty Oum
On 03/16/2016 09:36 AM, Ivan Noris wrote:
> Hi Stephen,
>
> could you please also share the resource XML? (Anonymized if needed).
> Thank you.
>
> Regards,
> Ivan
>
> On 03/16/2016 03:03 PM, Stephen Barker wrote:
>> Hi All,
>>
>> I could use some help with the scripted SQL Connector.
>>
>> I am using midpoint 3.3 and the scripted connector from
>> net.tirasa.connid.bundles.db.scriptedsql.ScriptedSQLConnector.
>>
>> I have created a very simple schema and search script of which I can
>> see the schema script is working well. When I go to "Accounts" though
>> in the List Resources menu I get the error:
>>
>> 2016-03-16 08:28:58,305 [MODEL] [http-bio-8080-exec-7] ERROR
>> (com.evolveum.midpo
>> int.model.impl.controller.ModelController): Couldn't search objects in
>> provision
>> ing, reason: Generic error in the connector:
>> org.identityconnectors.framework.co
>> mmon.exceptions.ConnectorException(Search script
>> error)->groovy.lang.MissingProp
>> ertyException(No such property: midpoint for class: Script1) (class
>> com.evolveum
>> .midpoint.util.exception.SystemException)
>>
>>
>> My search script is pretty simple basically just returning all results
>> from a table.
>>
>> I'll include the contents at the bottom of this email.
>>
>> What am I missing in getting this set up?
>>
>> -----
>> SEARCH SCRIPT
>> -----
>>
>> import groovy.sql.Sql;
>> import groovy.sql.DataSet;
>> import groovy.text.SimpleTemplateEngine;
>>
>> log.info("Entering " + action + " Script");
>>
>> def sql = new Sql(connection);
>> def result = []
>> def where = "";
>>
>> if (query != null){
>>
>> //To implement...
>>
>> }
>>
>> switch ( objectClass ) {
>>
>> case "__ACCOUNT__":
>> sql.eachRow("SELECT * from identity",
>> {result.add([__ENABLE__:true,__UID__:it.id, __NAME__:it.uin,
>> uin:it.uin)} );
>> break;
>>
>> case "__GROUP__":
>> log.info("Search Group");
>> break;
>>
>> default:
>> result;
>> }
>>
>> return result;
>>
>
More information about the midPoint
mailing list