Frage

Ich habe eine Frage zu Spring ACL lesen, aber es scheint nicht sehr kompetent. Zum Beispiel:

  1. Keine Möglichkeit, alle Objekte vom Typ X mit Y Erlaubnis zur Liste
  2. Keine Möglichkeit, automatisch die Schemata für neue Einrichtungen zu schaffen

Was sind Sie für ACL? Ist es klug, die ACL so entkoppelt vom Domänenmodell haben?

War es hilfreich?

Lösung

Wir haben versucht, das Frühlings ACL-Modell zu verwenden, und fand es unhandlich. Wir beendeten unsere eigenen Aufrollen, viel einfacher (aber auch weniger generisch), Implementierung und dann die Spring Security Stücke zu schreiben (accessDecisionManagers, Abstimmungen, Interceptor) unser Schema zu behandeln. Ich hoffe, das hilft.

Andere Tipps

Sie können einen Blick auf Apache Shiro haben wollen.

Von der Website: Apache Shiro ist ein leistungsfähig und einfach zu bedienende Java Sicherheitsframework, dass eine Authentifizierung, Autorisierung, Verschlüsselung, und Session-Management. Mit Shiros leicht zu verstehende API, können Sie schnell und sicher leicht jede Anwendung -. Von den kleinsten mobilen Anwendungen zu den größten Web- und Enterprise-Anwendungen

Viele Menschen bevorzugen den Weg Shiro Griffe Berechtigungen

Wenn Hibernate verwenden, können Sie automatisch das acl Schema gegen die db laufen durch diese zu persistence.xml hinzufügen:

<property name="hibernate.hbm2ddl.import_files" value="/import.sql"/>

<property name="hibernate.hbm2ddl.import_files_sql_extractor" value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor" />

und das Hinzufügen, das Schema zu /resources/import.sql

Sie können alle Objekte vom Typ X Liste mit Erlaubnis Y wie folgt aus:

select 
  *
from acl_entry a 
join acl_object_identity b on a.acl_object_identity = b.id
join acl_class c on b.object_id_class = c.id
where
  class = X
  and mask = Y

Allerdings Spring Security ACL ist grundsätzlich in Bezug auf die Reihe Sicherheit aufgrund Paginierung Probleme fehlerhaft. Sie sollten mit Blick in die Datenbank Row Sicherheit tun oder integrierten Tools, wenn Ihr db sie unterstützt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top