Zum Inhalt springen

Parametrisierte Datenobjekte im Jitterbit App Builder

In typischen Szenarien beschränken Entwickler den Zugriff auf Zeilen mithilfe der WHERE Klausel. Dies geschieht zur Entwurfszeit. Das Datenobjekt kann zur Laufzeit durch Panel- oder Seitenbindungskriterien eingeschränkt werden. Beispielsweise muss ein einzeiliges Panel so gebunden werden, dass das Datenobjekt genau eine Zeile zurückgibt. Unabhängig davon hat der Benutzer die Berechtigung, jede Zeile im angegebenen Datenobjekt anzuzeigen, sofern dies nicht durch die WHERE Klausel.

In manchen Szenarios müssen Entwickler den Zugriff auf Datenobjektzeilen zur Entwurfszeit jedoch möglicherweise auf der Grundlage von Bindungskriterien einschränken, die zur Laufzeit bereitgestellt werden. In diesen Szenarios sollte der Benutzer nur auf Zeilen zugreifen können, die er identifizieren kann.

Stellen Sie sich beispielsweise eine Selbstregistrierungsanwendung vor, mit der Benutzer Konten erstellen können. Die Anwendung sendet eine Email an eine vom Benutzer angegebene Email-Adresse. Die Email enthält einen Link zurück zur Selbstregistrierungsanwendung. Der Link selbst enthält ein geheimes Token, das als verbindliches Kriterium an die Bestätigungsseite übergeben wird. Auf diese Weise kann der Benutzer seine ausstehende Registrierung anzeigen und bestätigen.

Im Szenario der Selbstregistrierung muss der Entwickler sicherstellen, dass das Datenobjekt der Bestätigungsseite an das geheime Token gebunden ist. Andernfalls könnte ein böswilliger Benutzer einfach das geheime Token aus der URL entfernen, um andere ausstehende Registrierungen anzuzeigen. Dadurch könnte der Benutzer eine Registrierung für eine Email-Adresse bestätigen, auf die er keinen Zugriff hat.

Um dies zu verhindern, muss der Entwickler sicherstellen, dass der Benutzer bei der Abfrage der ausstehenden Bestätigungen seinen geheimen Token angibt. Dies kann mithilfe eines parametrisierten Datenobjekts erreicht werden.

Um ein parametrisiertes Datenobjekt zu erstellen, muss der Entwickler angeben, dass eine oder mehrere Spalten "bindend" sind. Zur Laufzeit, vor der Ausführung des Filter-Ereignisses, App Builder bestätigt, dass der Client Werte für jede Bindungsspalte angegeben hat. Wenn kein Bindungsspaltenwert angegeben wurde, App Builder wird eine Ausnahme auslösen. Dies verhindert, dass Benutzer - ob böswillig oder nicht - eine Abfrage ausführen, die jede Zeile aus dem Datenobjekt abruft. Im Beispiel der Selbstregistrierung kann der Benutzer nur dann eine ausstehende Bestätigung abrufen, wenn er das geheime Token bereits kennt.

Bekannte Probleme und Einschränkungen

  • Entwickler können die Ergebnisansicht nicht verwenden, um ein parametrisiertes Datenobjekt Abfrage. Die Ergebnisansicht wird ohne verbindliche Kriterien ausgeführt.
  • Parameterisierte Datenobjekt-Ereignisse können nicht geplant werden. App Builder liefert keine verbindlichen Kriterien bei der Abfrage des Datenobjekts des geplanten Ereignisses.