Parametrisierte Datenobjekte im Jitterbit App Builder
In typischen Szenarien beschränken Entwickler den Zugriff auf Zeilen mithilfe der Datenobjekte. 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 diese nicht durch die Datenobjektbindung ausgeschlossen ist. WHERE
Klausel.
In manchen Fällen müssen Entwickler den Zugriff auf Datenobjektzeilen zur Entwurfszeit jedoch basierend auf Bindungskriterien einschränken, die zur Laufzeit bereitgestellt werden. In diesen Fällen 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 die 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. So kann der Benutzer seine ausstehende Registrierung einsehen 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 das geheime Token einfach aus der URL entfernen, um andere ausstehende Registrierungen anzuzeigen. Dies würde es dem Benutzer ermöglichen, eine Registrierung für eine Email-Adresse zu 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 sein geheimes Token angibt. Dies kann durch ein parametrisiertes Datenobjekt 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, bestätigt App Builder, dass der Client Werte für jede Bindungsspalte angegeben hat. Wenn kein Bindungsspaltenwert angegeben wurde, löst App Builder eine Ausnahme aus. Dies verhindert, dass Benutzer - ob böswillig oder nicht - eine Abfrage ausführen, die alle Zeilen des Datenobjekts abruft. Im Beispiel der Selbstregistrierung kann der Benutzer eine ausstehende Bestätigung nur 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.
- Parametrisierte Datenobjekt-Ereignisse können nicht geplant werden. App Builder liefert keine verbindlichen Kriterien bei der Abfrage des Datenobjekts des geplanten Ereignisses.