Je suis actuellement en train de créer une application financière Java à laquelle je dois ajouter des droits, et je me demandais quelles approches les gens avaient prises pour résoudre ce problème, et s'il y avait des bibliothèques tierces recommandées.Standard Entitlements Modèle
Actuellement, j'ai un certain nombre d'utilisateurs qui peuvent être largement classés en rôles (par exemple "trader"). Chaque rôle peut avoir zéro ou plusieurs autorisations associées (par exemple "créer un échange").
Les décisions de conception:
Est-il préférable d'avoir des autorisations plus générales (par exemple le « commerce ») ainsi que des actions d'accompagnement (« créer », « mise à jour », « supprimer ») ou plus des autorisations descriptives ("par exemple "create trade")?
Quel est un bon moyen de modéliser le fait que certaines permissions sont paramétrées (par exemple, l'utilisateur X a la permission de "créer un trade" mais seulement pour les actions échangées sur le LSE)? paires de nom-valeur avant, mais cela semble plutôt laid.Ma seule idée de pensée ici est de mettre en œuvre Permission en tant que visiteur (voir l'exemple de code ci-dessous), mais je suis inquiet de l'interface pourrait devenir lourd (un s les objets #business augmentent).
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();
}
}
}
Toutes idées/suggestions sont les bienvenues. Merci d'avance.
vrai, API d'autorisation est un bon point de départ +1 – dfa