Heute können Sie von einer leistungsstarken Funktion zur Filterung des Datenzugriffs profitieren, die für die Verhinderung eines bösartigen Zugriffs auf Ihre Anwendung unerlässlich ist.
Diese Funktion verwendet Privilegien, die bestimmte Aktionen für Ihre Daten erlauben. Diese Privilegien werden Benutzern über Rollen zugewiesen und während der Authentifizierung in der Sitzung gespeichert.
In 4D 20R6 haben wir diese Funktionalität erweitert, indem wir Ihnen die Möglichkeit gegeben haben, die Privilegien in der Session einzusehen, was für die Fehlersuche sehr hilfreich ist.
Lesen Sie weiter, um mehr zu erfahren.
eine neue getPrivileges()-Funktion für das Session-Objekt
Schauen wir uns ein Beispiel an.
In der Datei roles.json haben wir das Medium-Privileg, das das einfache Privileg enthält. Die Rolle Medium enthält das mittlere Privileg.
{
"privileges": [
{
"privilege": "simple",
"includes": []
},
{
"privilege": "medium",
"includes": [
"simple"
]
}
],
"roles": [
{
"role": "Medium",
"privileges": [
"medium"
]
}
],
"permissions": {
"allowed": [] // Set up the allowed actions here
}
}
In der Klasse Datastore gibt es eine Funktion authentify(), die alle Berechtigungen der gegebenen Rolle der Session zuweist.
exposed Function authentify($role : Text) : Text
Session.clearPrivileges()
Session.setPrivileges({roles: $role})
return "Authentication done with "+$role
In der Datastore-Klasse wurde auch eine getPrivileges() Funktion implementiert. Sie gibt die Privilegien in der Session zurück.
exposed Function getPrivileges() : Collection
return Session.getPrivileges()
Wenn die Funktion authentify() mit der Rolle Medium aufgerufen wird, gibt die Funktion getPrivileges() zurück:
[
"simple",
"medium"
]
Neue /$info/privileges RESt API
Es gibt auch eine neue REST-API zum Abrufen der Privilegien in der Sitzung. Der Aufruf von /$info/privileges im obigen Beispiel gibt ebenfalls zurück:
{
"privileges": [
{
"privilege": "simple"
},
{
"privilege": "medium"
}
]
}
Dies erleichtert das Debugging. Lesen Sie die Dokumentation, um mehr zu erfahren.