XIP iesxip: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „==Import== ===Import Quellen=== ====Datei / Verzeichnis==== ====HTTP==== ====LDAP==== ====Datenbank====“)
 
Zeile 2: Zeile 2:
  
 
===Import Quellen===
 
===Import Quellen===
 +
Im Nachfolgenden wird beschreiben wie die unterschiedlichen Import-Quellen angegeben werden können.
  
 
====Datei / Verzeichnis====
 
====Datei / Verzeichnis====
 +
Die zu importierende XIP-Datei oder das zu importierende Verzeichnisses in denen XML-Dateien im [[XIP Format]] liegen können als Argument des <code>iesxip</code> Kommandos angegeben werden
 +
iesxip -i -u ''user'' -p ''password'' -c ''client'' ''xip-file''|''xip-directory''
 +
 +
Soll der Import über eine Konfigurations-Datei erfolgen so muss die Import-Quelle mit folgenden Tag angegeben werden:
 +
<source lang="xml">
 +
<import>
 +
  ....
 +
  <source type="file" file="path-to-file-or-dir"/>
 +
  ...
 +
</import>
 +
</source>
 +
 
====HTTP====
 
====HTTP====
 +
Ein Import von XML-Daten über HTTP kann nur mit Hilfe einer XML-Konfiguration erfolgen. Im folgenden wird beschrieben, wie das <code>&lt;source&gt;</code> Element definiert werden muss.
 +
 +
;Element <code>&lt;source&gt;</code>
 +
 +
:''Attribute:''
 +
:{| class="prettytable sortable"
 +
|- class="hintergrundfarbe1"
 +
! Name || Beschreibung
 +
|-
 +
| <code>type</code>
 +
| muss für einen HTTP-Import <code>http</code> lauten.
 +
|-
 +
| <code>url</code>
 +
| URL der Import-Quelle
 +
|-
 +
| <code>method</code>
 +
| <code>get</code> oder <code>post</code> für die zu verwendende HTTP Methode. Default ist <code>get</code>.
 +
|}
 +
:''Unterelemente:''
 +
:;Element <code>&lt;header&gt;</code>'''
 +
::Mit diesem Element können HTTP-Header angegeben werden.
 +
::''Attribute:''
 +
::{| class="prettytable sortable"
 +
|- class="hintergrundfarbe1"
 +
! Name || Beschreibung
 +
|-
 +
| <code>name</code>
 +
| Name des Headers
 +
|}
 +
::Der Wert des Headers wird innerhalb des <code>&lt;header&gt;</code>-Elementes angegeben
 +
::<source lang="xml"><header name="My-Header">Header-Wert</header></source>
 +
:;Element <code>&lt;parameter&gt;</code>'''
 +
::Wird die HTTP-POST Methode verwendet, können mit diesen Elementen HTTP-POST Parameter definiert werden.
 +
::''Attribute:''
 +
::{| class="prettytable sortable"
 +
|- class="hintergrundfarbe1"
 +
! Name || Beschreibung
 +
|-
 +
| <code>name</code>
 +
| Name des Parameters
 +
|}
 +
::Der Wert des Parameters wird innerhalb des <code>&lt;parameter&gt;</code>-Elementes angegeben
 +
::<source lang="xml"><parameter name="myparam">Parameter-Wert</header></source>
 +
:;Element <code>&lt;body&gt;</code>'''
 +
::Wird die HTTP-POST Methode verwendet, kann mit diesem Element der HTTP-Body definiert werden. Wird dieses Element angegeben, werden die mit <code>&lt;parameter&gt;</code> definierten HTTP-Parameter ignoriert.
 +
::''Attribute:''
 +
::{| class="prettytable sortable"
 +
|- class="hintergrundfarbe1"
 +
! Name || Beschreibung
 +
|-
 +
| <code>content-type</code>
 +
| Content-Type des HTTP-Body
 +
|-
 +
| <code>charset</code>
 +
| Charset des HTTP-Body. Kann alternativ auch im <code>content-type</code> z.B. mit <code>text/xml; charset=UTF-8</code> angegeben werden.
 +
|}
 +
::Innerhalb des <code>&lt;body&gt;</code> Elementes wird der HTTP-Body definiert.
 +
 +
Beispiel-Konfiguration für einen SOAP-Request
 +
<syntaxhighlight lang="xml">
 +
    <source type="http" url="${wsurl}/getformlist.php" method="post">
 +
        <header name="SOAPAction">"urn:FS#getformlist"</header>
 +
        <body content-type="text/xml; charset=UTF-8"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
 +
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:FS" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 +
<SOAP-ENV:Body>
 +
    <tns:getformlist xmlns:tns="urn:FS">
 +
        <cms xsi:type="xsd:string">${cmskey}</cms>
 +
    </tns:getformlist>
 +
</SOAP-ENV:Body>
 +
</SOAP-ENV:Envelope>]]></body>
 +
    </source>
 +
</syntaxhighlight>
 +
 
====LDAP====
 
====LDAP====
 +
Ein Import von LDAP-Daten kann nur mit Hilfe einer XML-Konfiguration erfolgen. Der Abzufragenden LDAP-Server muss im IES-Admin konfiguriert sein. Die Abfrage der LDAP-Daten erfolgt über eine LDAP-Suche. Da mit LDAP keine kombinierte Suche mit LDAP-Gruppen möglich ist, bietet der XIP Importer zusätzlich diese Möglichkeit, indem LDAP-Suchen und LDAP-Gruppen mit UND und ODER Verknüpfungen kombiniert werden können.
 +
 +
 +
Im folgenden wird beschrieben, wie das <code>&lt;source&gt;</code> Element definiert werden muss.
 +
 +
;Element <code>&lt;source&gt;</code>
 +
 +
:''Attribute:''
 +
:{| class="prettytable sortable"
 +
|- class="hintergrundfarbe1"
 +
! Name || Beschreibung
 +
|-
 +
| <code>type</code>
 +
| muss für einen LDAP-Import <code>ldap</code> lauten.
 +
|-
 +
| <code>id</code>
 +
| ID der LDAP-Konfiguration im IES-Admin
 +
|}
 +
:''Unterelemente:''
 +
:;Element <code>&lt;query&gt;</code>'''
 +
::Unterhalb dieses Elements wird die LDAP-Suche definiert
 +
::;Unterelement <code>&lt;ldap-query&gt;</code>'''
 +
:::Suche im LDAP-System
 +
:::;Unterelement <code>&lt;search-filter&gt;</code>'''
 +
::::LDAP-Suchfilter. Beispiel: <source lang="text">(&amp;(uid=a*)(objectClass=inetOrgPerson))</source>
 +
:::;Unterelement <code>&lt;search-base&gt;</code>'''
 +
::::Basis ab der im LDAP-System gesucht werden soll. Beispiel: <source lang="text">dc=sitepark,dc=com</source>
 +
:::;Unterelement <code>&lt;search-scope&gt;</code>'''
 +
::::Gibt an, welche Ebenen durchsucht werden sollen. Mögliche Werte sind:
 +
:::::<code>subtree</code>: Alle Ebenen, ab der Suchbasis werden durchsucht.
 +
:::::<code>onlevel</code>: Nur die Suchbasis-Ebenen wird durchsucht.
 +
:::;Unterelement <code>&lt;limit&gt;</code>'''
 +
::::Maximale Anzahl an zurück zu liefernden Treffer
 +
::;Unterelement <code>&lt;ldap-group&gt;</code>'''
 +
:::Ldap-Gruppe dessen Mitglieder gefunden werden sollen. In LDAP-Gruppen werden nur Referenzen zu LDAP-Objekten abgelegt. Je nach LDAP-Sytem können diese Referenzen über den DN oder die UID aufgebaut werden. Damit der XIP-Importer über die Refererzen die LDAP-Objekte laden kann muss mit dem Attribut <code>member-dn-attribute</code> bzw. <code>member-uid-attribute</code> angegeben werden wie die Referenz in der LDAP-Gruppe gespeichert ist.
 +
:::''Attribute:''
 +
:::{| class="prettytable sortable"
 +
|- class="hintergrundfarbe1"
 +
! Name || Beschreibung
 +
|-
 +
| <code>member-dn-attribute</code>
 +
| Name des LDAP-Attributes, in dem der DN abgelegt ist. Muss angegeben werden oder <code>member-uid-attribute</code>
 +
|-
 +
| <code>member-uid-attribute</code>
 +
| Name des LDAP-Attributes, in dem die UID abgelegt ist. Muss angegeben werden oder <code>member-uid-attribute</code>
 +
|-
 +
|}
 +
:::Innerhalb des <code>&lt;ldap-group&gt;</code> Elementes wird die DN der Gruppe angegeben.
 +
::;Unterelement <code>&lt;and&gt;</code>'''
 +
:::Und-Verknüpfung zwischen zwei Suchdefinitionen. Und-Verknüfungen können auch in LDAP-Queries selbst angegeben werden. Die Verknüpfung mit diesem <code>&lt;and&gt;</code> Element ist nur zu empfehlen, wenn Suchen mit LDAP-Gruppen verknüpft werden sollen, da dies mit LDAP sonst nicht möglich ist.
 +
:::;Erlaubte Unterelemente <code>&lt;and&gt;</code>, <code>&lt;or&gt;</code>, <code>&lt;ldap-query&gt;</code>, <code>&lt;ldap-group&gt;</code>
 +
 +
::;Unterelement <code>&lt;or&gt;</code>'''
 +
:::Oder-Verknüpfung zwischen zwei Suchdefinitionen. Oder-Verknüfungen können auch in LDAP-Queries selbst angegeben werden. Die Verknüpfung mit diesem <code>&lt;or&gt;</code> Element ist nur zu empfehlen, wenn Suchen mit LDAP-Gruppen verknüpft werden sollen, da dies mit LDAP sonst nicht möglich ist.
 +
:::;Erlaubte Unterelemente <code>&lt;and&gt;</code>, <code>&lt;or&gt;</code>, <code>&lt;ldap-query&gt;</code>, <code>&lt;ldap-group&gt;</code>
 +
 +
Beispiel:
 +
<syntaxhighlight lang="xml">
 +
<source type="ldap" id="1">
 +
  <query>
 +
      <and>
 +
        <ldap-query>
 +
            <search-filter>(&amp;(uid=a*)(objectClass=inetOrgPerson))</search-filter>
 +
            <search-base>dc=sitepark,dc=com</search-base>
 +
            <search-scope>subtree</search-scope>
 +
            <!-- <limit>1000</limit> -->
 +
        </ldap-query>
 +
        <or>
 +
            <ldap-group member-dn-attribute="uniqueMember">cn=CMS Redakteure,ou=groups,dc=sitepark,dc=com</ldap-group>
 +
            <ldap-group member-dn-attribute="uniqueMember">cn=CMS Administratore,ou=groups,dc=sitepark,dc=com</ldap-group>
 +
        <or>
 +
      </and>
 +
  </query>
 +
</source>
 +
</syntaxhighlight>
 +
 +
Aus dem Suchergebnis erzeugt der XIP Importer XML-Daten der folgenden Form:
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<rowset>
 +
  <row>
 +
      <dn>dn 1</dn>
 +
      <fieldname1>fieldvalue1</fieldname1>
 +
      <fieldname2>fieldvalue2</fieldname2>
 +
      <fieldname3>fieldvalue3</fieldname3>
 +
      <group>dn group1</group>
 +
      <group>dn group2</group>
 +
  </row>
 +
  <row>
 +
      <dn>dn 2</dn>
 +
      <fieldname1>fieldvalue1</fieldname1>
 +
      <fieldname2>fieldvalue2</fieldname2>
 +
      <fieldname3>fieldvalue3</fieldname3>
 +
      <group>dn group3</group>
 +
  </row>
 +
  ...
 +
</rowset>
 +
</source>
 +
 +
Mit der Option <code>--dumpXml</code> könne diese Daten auf der Konsole ausgegeben werden (ist bereist eine XSLT angegeben werden aber die Transformierten Daten ausgegeben)
 +
 +
Um die Daten zu importieren zu könne muss eine XSLT definiert werden die diese XML-Daten in das gewünschte [[XIP Format]] umwandelt.
 +
 
====Datenbank====
 
====Datenbank====

Version vom 21. Juni 2010, 09:19 Uhr

Import

Import Quellen

Im Nachfolgenden wird beschreiben wie die unterschiedlichen Import-Quellen angegeben werden können.

Datei / Verzeichnis

Die zu importierende XIP-Datei oder das zu importierende Verzeichnisses in denen XML-Dateien im XIP Format liegen können als Argument des iesxip Kommandos angegeben werden

iesxip -i -u user -p password -c client xip-file|xip-directory

Soll der Import über eine Konfigurations-Datei erfolgen so muss die Import-Quelle mit folgenden Tag angegeben werden:

<import>
  ....
  <source type="file" file="path-to-file-or-dir"/>
  ...
</import>

HTTP

Ein Import von XML-Daten über HTTP kann nur mit Hilfe einer XML-Konfiguration erfolgen. Im folgenden wird beschrieben, wie das <source> Element definiert werden muss.

Element <source>
Attribute:
Name Beschreibung
type muss für einen HTTP-Import http lauten.
url URL der Import-Quelle
method get oder post für die zu verwendende HTTP Methode. Default ist get.
Unterelemente:
Element <header>
Mit diesem Element können HTTP-Header angegeben werden.
Attribute:
Name Beschreibung
name Name des Headers
Der Wert des Headers wird innerhalb des <header>-Elementes angegeben
<header name="My-Header">Header-Wert</header>
Element <parameter>
Wird die HTTP-POST Methode verwendet, können mit diesen Elementen HTTP-POST Parameter definiert werden.
Attribute:
Name Beschreibung
name Name des Parameters
Der Wert des Parameters wird innerhalb des <parameter>-Elementes angegeben
<parameter name="myparam">Parameter-Wert</header>
Element <body>
Wird die HTTP-POST Methode verwendet, kann mit diesem Element der HTTP-Body definiert werden. Wird dieses Element angegeben, werden die mit <parameter> definierten HTTP-Parameter ignoriert.
Attribute:
Name Beschreibung
content-type Content-Type des HTTP-Body
charset Charset des HTTP-Body. Kann alternativ auch im content-type z.B. mit text/xml; charset=UTF-8 angegeben werden.
Innerhalb des <body> Elementes wird der HTTP-Body definiert.

Beispiel-Konfiguration für einen SOAP-Request

    <source type="http" url="${wsurl}/getformlist.php" method="post">
        <header name="SOAPAction">"urn:FS#getformlist"</header>
        <body content-type="text/xml; charset=UTF-8"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:FS" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
    <tns:getformlist xmlns:tns="urn:FS">
        <cms xsi:type="xsd:string">${cmskey}</cms>
    </tns:getformlist>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>]]></body>
    </source>

LDAP

Ein Import von LDAP-Daten kann nur mit Hilfe einer XML-Konfiguration erfolgen. Der Abzufragenden LDAP-Server muss im IES-Admin konfiguriert sein. Die Abfrage der LDAP-Daten erfolgt über eine LDAP-Suche. Da mit LDAP keine kombinierte Suche mit LDAP-Gruppen möglich ist, bietet der XIP Importer zusätzlich diese Möglichkeit, indem LDAP-Suchen und LDAP-Gruppen mit UND und ODER Verknüpfungen kombiniert werden können.


Im folgenden wird beschrieben, wie das <source> Element definiert werden muss.

Element <source>
Attribute:
Name Beschreibung
type muss für einen LDAP-Import ldap lauten.
id ID der LDAP-Konfiguration im IES-Admin
Unterelemente:
Element <query>
Unterhalb dieses Elements wird die LDAP-Suche definiert
Unterelement <ldap-query>
Suche im LDAP-System
Unterelement <search-filter>
LDAP-Suchfilter. Beispiel:
(&amp;(uid=a*)(objectClass=inetOrgPerson))
Unterelement <search-base>
Basis ab der im LDAP-System gesucht werden soll. Beispiel:
dc=sitepark,dc=com
Unterelement <search-scope>
Gibt an, welche Ebenen durchsucht werden sollen. Mögliche Werte sind:
subtree: Alle Ebenen, ab der Suchbasis werden durchsucht.
onlevel: Nur die Suchbasis-Ebenen wird durchsucht.
Unterelement <limit>
Maximale Anzahl an zurück zu liefernden Treffer
Unterelement <ldap-group>
Ldap-Gruppe dessen Mitglieder gefunden werden sollen. In LDAP-Gruppen werden nur Referenzen zu LDAP-Objekten abgelegt. Je nach LDAP-Sytem können diese Referenzen über den DN oder die UID aufgebaut werden. Damit der XIP-Importer über die Refererzen die LDAP-Objekte laden kann muss mit dem Attribut member-dn-attribute bzw. member-uid-attribute angegeben werden wie die Referenz in der LDAP-Gruppe gespeichert ist.
Attribute:
Name Beschreibung
member-dn-attribute Name des LDAP-Attributes, in dem der DN abgelegt ist. Muss angegeben werden oder member-uid-attribute
member-uid-attribute Name des LDAP-Attributes, in dem die UID abgelegt ist. Muss angegeben werden oder member-uid-attribute
Innerhalb des <ldap-group> Elementes wird die DN der Gruppe angegeben.
Unterelement <and>
Und-Verknüpfung zwischen zwei Suchdefinitionen. Und-Verknüfungen können auch in LDAP-Queries selbst angegeben werden. Die Verknüpfung mit diesem <and> Element ist nur zu empfehlen, wenn Suchen mit LDAP-Gruppen verknüpft werden sollen, da dies mit LDAP sonst nicht möglich ist.
Erlaubte Unterelemente <and>, <or>, <ldap-query>, <ldap-group>
Unterelement <or>
Oder-Verknüpfung zwischen zwei Suchdefinitionen. Oder-Verknüfungen können auch in LDAP-Queries selbst angegeben werden. Die Verknüpfung mit diesem <or> Element ist nur zu empfehlen, wenn Suchen mit LDAP-Gruppen verknüpft werden sollen, da dies mit LDAP sonst nicht möglich ist.
Erlaubte Unterelemente <and>, <or>, <ldap-query>, <ldap-group>

Beispiel:

<source type="ldap" id="1">
   <query>
      <and>
         <ldap-query>
            <search-filter>(&amp;(uid=a*)(objectClass=inetOrgPerson))</search-filter>
            <search-base>dc=sitepark,dc=com</search-base>
            <search-scope>subtree</search-scope>
            <!-- <limit>1000</limit> -->
         </ldap-query>
         <or>
            <ldap-group member-dn-attribute="uniqueMember">cn=CMS Redakteure,ou=groups,dc=sitepark,dc=com</ldap-group>
            <ldap-group member-dn-attribute="uniqueMember">cn=CMS Administratore,ou=groups,dc=sitepark,dc=com</ldap-group>
         <or>
      </and>
  </query>
</source>

Aus dem Suchergebnis erzeugt der XIP Importer XML-Daten der folgenden Form:

<?xml version="1.0" encoding="UTF-8"?>
<rowset>
   <row>
      <dn>dn 1</dn>
      <fieldname1>fieldvalue1</fieldname1>
      <fieldname2>fieldvalue2</fieldname2>
      <fieldname3>fieldvalue3</fieldname3>
      <group>dn group1</group>
      <group>dn group2</group>
   </row>
   <row>
      <dn>dn 2</dn>
      <fieldname1>fieldvalue1</fieldname1>
      <fieldname2>fieldvalue2</fieldname2>
      <fieldname3>fieldvalue3</fieldname3>
      <group>dn group3</group>
   </row>
   ...
</rowset>

Mit der Option --dumpXml könne diese Daten auf der Konsole ausgegeben werden (ist bereist eine XSLT angegeben werden aber die Transformierten Daten ausgegeben)

Um die Daten zu importieren zu könne muss eine XSLT definiert werden die diese XML-Daten in das gewünschte XIP Format umwandelt.

Datenbank