Prozedur um herauszufinden, mit welchem Algorithmus Eigenschaften einer Person veschlüsselt sind - wie z.B. das Paßwort oder die Kreditkartendaten.
Vorgehen dieser Prozedur :
1.) Sofern anhand der Parameter „PersonTypeID“, „IdentifyingValue“, „IdentifyingCharacteristicID“ und „CaseSensitive“ EINDEUTIG eine Person identifiziert werden konnte, wird zu den gewünschten Merkmalen jeweils der „Verschlüsselungs-Algorithmus“ ermittelt, mit dem die zugehörige Eigenschaft der identifizierten Person verschlüsselt ist.
2.) Hinsichtlich verschlüsselter Eigenschaften wird von folgender Konvention ausgegangen : Wenn die Eigenschaft die Form
{<Zeichenkette, die 1 bis 10 Zeichen enthält>}<beliebige Zeichenkette, die mindestens 1 Zeichen enthält>
besitzt, wird <Zeichenkette, die 1 bis 10 Zeichen enthält> als „EncryptionAlgorithm“ gewählt.
Hinweise :
1.) Um nicht zu leicht durch mehrfaches Aufrufen dieser Prozedur implizit feststellen zu können, welcher „IdentifyingValue“ auch tatsächlich existiert, gibt es in allen Fällen KEINEN negativen Return-Code UND eine Rückgabemenge (Ausnahme ist „-500“, falls in „GetEncrAlgForCharacIDList“ keine Liste von IDs angegeben wurde), die zu jeder in „GetEncrAlgForCharacIDList“ angegeben EXISTIERENDEN „PersonCharacteristicID“ einen Datensatz enthält - sofern keine „komplett lesende Zugriffsbeschränkung“ (s. pm_GetPChAccRestrForUsers_Ad) für den Benutzer, der diese Prozedur aufruft, besteht (solche Merkmale werden AUSGELASSEN, es gibt also auch hier keinen Fehler).
2.) Die Rückgabespalte „EncryptionAlgorithm“ enthält IMMER „NULL“, wenn kein Algorithmus ermittelt werden konnte !
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | person management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
PersonTypeID | ID des Personen-Typs dem die zu identifizierende Person angehört | tinyint | 5.1.5 | |
IdentifyingCharacteristicID | ID eines Merkmals, zu dem GENAU EINE Person des Typs „PersonTypeID“ die Eigenschaft „IdentifyingValue“ besitzt | smallint | 5.1.5 | |
IdentifyingValue | Eigenschaft (zum Merkmal „IdentifyingCharacteristicID“), die EINDEUTIG eine Person (des Typs „PersonTypeID“) identifiziert | varchar(100) | 5.1.5 | |
CaseSensitive | 1 | „0“ : „IdentifyingValue“ ist bis auf Groß- und Kleinschreibung richtig „1“ : „IdentifyingValue“ ist EXAKT angegeben | bit | 5.1.5 |
GetEncrAlgForCharacIDList | Liste von Merkmal-IDs (durch „¶“ getrennt), für deren jeweilige Eigenschaft der Verschlüsselungs-Algorithmus ermittelt werden soll. Merkmale, für die der Aufrufer keinen vollständigen lesenden Zugriff besitzt, werden ignoriert. | varchar(100) | 5.1.5 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
PersonCharacteristicID | ID eines Merkmals, das in „GetEncrAlgForCharacIDList“ angegeben wurde | smallint | 5.1.5 |
EncryptionAlgorithm | Verschlüsselungs-Algorithmus, mit dem die Eigenschaft der identifizierten Person zum Merkmal „PersonCharacteristicID“ verschlüsselt ist. „NULL“ bedeutet, daß kein Algorithmus ermittelt werden konnte - der Grund ist aber unklar ! | varchar(20) | 5.1.5 |
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 5) |
---|---|---|
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | direkt und indirekt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | „Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670 |
6.5.2 | 2013-02-26 | 1. Beachtung der neuen Zugriffs-Beschränkungen für Merkmale [⇒ Doku-Anpassung] 2. Anpassung des Quellcodes an den aktuellen Standard 3. Wg. UTF8-Unterstützung wurde der Datentyp von „EncryptionAlgorithm“ verlängert [von „10“ auf „20“] |
6.0.3 | 2011-09-07 | 1. Unstellung der Identifizierung im Fall „CaseSensitive = 0“ auf die neue Tabelle „UniquePersonProperties“ 2. Workaround für „JZ0S8: An escape sequence in a SQL Query was malformed“-Fehler, der beim Übersetzen dieser Prozedur über „jConnect“ auftritt |
5.1.5 | 2006-08-29 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/pm_GetEncryptionAlgorithm_Pu?PersonTypeID=<value>&IdentifyingCharacteristicID=<value>&IdentifyingValue=<value>&GetEncrAlgForCharacIDList=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/pm_GetEncryptionAlgorithm_Pu?PersonTypeID=<value>&IdentifyingCharacteristicID=<value>&IdentifyingValue=<value>&GetEncrAlgForCharacIDList=<value>' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'pm_GetEncryptionAlgorithm_Pu', array( 'PersonTypeID' => <value>, 'IdentifyingCharacteristicID' => <value>, 'IdentifyingValue' => '<value>', 'GetEncrAlgForCharacIDList' => '<value>', // 'CaseSensitive' => 1 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="pm_GetEncryptionAlgorithm_Pu"> <Parameters> <Parameter Name="PersonTypeID"><!-- tinyint value --></Parameter> <Parameter Name="IdentifyingCharacteristicID"><!-- smallint value --></Parameter> <Parameter Name="IdentifyingValue"><!-- varchar value --></Parameter> <Parameter Name="GetEncrAlgForCharacIDList"><!-- varchar value --></Parameter> <!-- <Parameter Name="CaseSensitive">1</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>