Question

J'ai lu au sujet du printemps ACL, mais il ne semble pas être très compétent. Par exemple:

  1. Pas moyen de la liste tous les objets de type X avec la permission Y
  2. Pas moyen de créer automatiquement les schémas pour les nouveaux déploiements

Qu'est-ce que vous utilisez pour ACL? Est-il intelligent d'avoir l'ACL si découplé du modèle de domaine?

Était-ce utile?

La solution

Nous avons tenté d'utiliser le modèle ACL printemps et trouvé difficile à manier. Nous avons fini par rouler notre propre, beaucoup plus simple (mais aussi moins générique), la mise en œuvre et l'écriture des pièces de sécurité Spring (accessDecisionManagers, électeurs, Interceptor) pour gérer notre schéma. Hope qui aide.

Autres conseils

Vous pouvez jeter un oeil à Apache Shiro .

Sur le site: Apache Shiro est un puissant et facile à utiliser framework Java de sécurité qui effectue l'authentification, l'autorisation, la cryptographie et la gestion des sessions. Avec l'API facile à comprendre de Shiro, vous pouvez rapidement et facilement sécuriser toutes les applications -. Des plus petites applications mobiles aux plus grandes applications Web et d'entreprise

Beaucoup de gens préfèrent la façon Shiro autorisations poignées

Si vous utilisez Hibernate, vous pouvez exécuter automatiquement le schéma acl contre le db en ajoutant à ce persistence.xml:

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

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

et en ajoutant le schéma à /resources/import.sql

Vous pouvez répertorier tous les objets de type X avec l'autorisation Y comme ceci:

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

Toutefois, la sécurité Spring ACL est fondamentalement viciée en termes de ligne de sécurité, en raison de problèmes de pagination. Vous devez faire la sécurité Row dans la base de données avec des vues ou des outils intégrés si votre db les prend en charge.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top