Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:pm_getencryptionalgorithm_pu

pm_GetEncryptionAlgorithm_Pu

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-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieperson management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
PersonTypeID ID des Personen-Typs dem die zu identifizierende Person angehört
tinyint5.1.5
IdentifyingCharacteristicID ID eines Merkmals, zu dem GENAU EINE Person des Typs „PersonTypeID“ die Eigenschaft „IdentifyingValue“ besitzt
smallint5.1.5
IdentifyingValue Eigenschaft (zum Merkmal „IdentifyingCharacteristicID“), die EINDEUTIG eine Person (des Typs „PersonTypeID“) identifiziert
varchar(100)5.1.5
CaseSensitive1 „0“ : „IdentifyingValue“ ist bis auf Groß- und Kleinschreibung richtig
„1“ : „IdentifyingValue“ ist EXAKT angegeben
bit5.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

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
PersonCharacteristicIDID eines Merkmals, das in „GetEncrAlgForCharacIDList“ angegeben wurde
smallint5.1.5
EncryptionAlgorithmVerschlü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

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochendirekt und indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29„Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670
6.5.2 2013-02-261. 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-071. 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-29Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

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 -
dStore_php
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();
engine/execute

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>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/pm_getencryptionalgorithm_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)