Ich baue gerade eine Java-Finanzanwendung, der ich Berechtigungen hinzufügen muss, und fragte mich, welche Ansätze die Leute unternommen haben, um dieses Problem zu lösen, und ob es Drittanbieter-Java-Bibliotheken gibt, die man empfehlen würde.Standardberechtigungen Modell
Derzeit habe ich eine Reihe von Benutzern, die grob in Rollen (z. B. "Händler") kategorisiert werden können. Mit jeder Rolle können keine oder mehrere Berechtigungen verknüpft sein (z. B. "Handel erstellen").
Entwurfsentscheidungen:
Ist es besser, allgemeinere Berechtigungen (zB „Handel“) sowie flankierende Maßnahmen zu haben („create“, „update“, „löschen“) oder mehr beschreibende Berechtigungen ("zB "create trade")?
Was ist ein guter Weg, um die Tatsache zu modellieren, dass einige Berechtigungen parametrisiert sind (zB User X hat die Erlaubnis "Trade erstellen", aber nur für an der LSE gehandelte Aktien)? Name-Wert-Paare vorher, aber das scheint ziemlich hässlich zu sein.Meine einzige Idee hier ist, Erlaubnis als Besucher zu implementieren (siehe Beispielcode unten), aber ich bin besorgt, dass die Schnittstelle unhandlich werden könnte (a s die # Business-Objekte erhöht).
public interface Permission {
void checkPermission(Trade trade) throws SecurityPermission;
void checkPermission(AnotherBusinessObject obj) throws SecurityPermission;
}
public class ExchangePermission implements Permission {
private final Exchange exchange;
public void checkPermission(Trade trade) {
if (!exchange.equals(trade.getExchange())) {
throw new SecurityException();
}
}
}
Alle Ideen/Vorschläge sind mehr als willkommen. Danke im Voraus.
wahr, Permission API ein guter Ausgangspunkt ist 1 – dfa