2011-03-30 4 views
4

Ceci est lié à ce question qui semble avoir demandé il y a un certain temps. Implémentation de la sécurité dans un projet qui respecte les principes de base de la conception orientée domaine. permettez-moi de donner un exempleConception axée sur le domaine et la sécurité

Banking System:
Cas d'utilisation: Un nouveau dépôt bancaire est faite et requiert l'approbation comme il est premier dépôt

a. Le commis peut autoriser automatiquement si le montant du dépôt est b. Le gestionnaire peut être de deux types - gestionnaire de banque/gestionnaire de compte. Seul gestionnaire de compte peut autoriser tous les comptes qui ont dépôt> 5000

Mes préoccupations sont les suivantes (Pls correcte si le problème lui-même est correct)

  1. Je ne sais pas où je devrais construire cette logique suivante - prend en charge vérifier si l'utilisateur connecté a l'autorisation de faire certaines choses en tenant compte de son titre - (dans ce cas, le gestionnaire de compte). L'autorisation est un cas d'utilisation, mais la couche de sécurité semble avoir une connaissance intime de l'objet domaine
  2. En général Autorisation (pas d'authentification). Je sais que l'authentification basée sur les rôles serait utile, mais la question est "où" - dans quelle couche et le flux d'appels. La couche d'interface utilisateur doit-elle appeler une couche de sécurité ou la couche de domaine doit-elle se valider pour toutes les combinaisons possibles?

Aidez-nous s'il vous plaît. C'est très déroutant.

Bump pour voir si cela obtient des experts remarquent

Vive

Répondre

3

La sécurité est une caractéristique de conception transversale qui peut affecter toutes les classes, méthodes et propriétés. D'un point de vue DDD, vous devez respecter les spécifications et les rôles.

Où et comment ces spécifications sont implémentées se résume à votre architecture. Vous pouvez aller avec les aspects, vous pouvez aller avec en ligne des appels, des événements, etc.

Voici quelques liens que je vérifierais en ce qui concerne la sécurité et les rôles:

+0

Merci pour la réponse rapide. Je regarde. – VJVRR

+0

Merci pour la réponse rapide. RBAC était un lien intéressant, mais je regardais plutôt quelques exemples/interfaces rapides/classes qui me donnaient une idée de comment cela pourrait ressembler. Newbie ici, therotically peut l'obtenir. Pratiquement sur l'échelle d'apprentissage. – VJVRR

+0

Ce que j'utilise est une classe ISecurity.Authorize (chaîne userID) qui est appelée par chaque méthode lors de l'exécution de CRUD. Autoriser les vérifications si l'utilisateur est authentifié et possède l'objet mis à jour ou s'il s'agit d'un administrateur. –

Questions connexes