2016-06-01 10 views
0

Ich lese über Spring Security ACL lib und bin ein wenig verwirrt über einige Konzepte. In Bezug auf SIDs, heißt es auf meine Verwirrung:ACL Principal vs GrantedAuthority Concepts

ACL_SID wir in das System jede Haupt- oder Behörde eindeutig identifizieren kann („SID“ steht für „Sicherheitsidentität“). Die einzigen Spalten sind die ID, eine textuelle Repräsentation der SID, und ein Flag zu zeigt an, ob sich die textuelle Repräsentation auf einen eindeutigen Namen oder eine GrantedAuthority bezieht.

So ist Prinzip gleich wie Rolle? Ist GrantedAuthority ein gleiches Konzept oder eine bestimmte Rolle? Bedeutet ein boolesches Feld principal = true, dass der Bezeichner einen semantischen Wert hat oder einfach eine Rolle innerhalb des Systems? Wenn ja, warum möchten Sie SIDs speichern, die nicht im System erfasst sind?

Antwort

1

Eine ACL (Access Control List) besteht aus einer Reihe von Einträgen (Regeln), wobei jeder Eintrag auf sid verweist. Dies ist ein Benutzer oder eine Gruppe von Benutzern, auf die der Eintrag/die Regel angewendet werden soll.

  • Wenn das Hauptfeld true gesetzt ist, ist der SID ein Haupt, dass ein einzelner Benutzer ist. Das Feld sid enthält dann den Benutzernamen.

  • Wenn das Hauptfeld auf false festgelegt ist, ist die SID eine Autorität, z. B. ROLE_ADMIN. Eine GrantedAuthority ist im Grunde dasselbe wie eine Rolle (eine Rolle ist eine Art Autorität).