2016-11-05 1 views
0

Je développe un schéma de sécurité personnalisé pour une application web basée sur Apache Jackrabbit. J'ai étendu l'implémentation de sécurité standard de Jackrabbit à mes besoins, et jusqu'à présent cela fonctionne correctement. Mais, j'ai des problèmes avec plusieurs principaux étant assignés des permissions sur un noeud. Par exemple, l'utilisateur U est un membre du groupe G. Les groupes G n'ont pas d'autorisations de lecture sur un nœud, mais l'utilisateur U a des autorisations de lecture. Ce que je veux dire par là, le groupe G a jcr:read privilège mis à deny, et l'utilisateur U a jcr:read mis à allow sur un nœud. Sur cette base, je suppose que l'utilisateur U serait capable de lire le nœud, même s'il est membre d'un groupe qui n'est pas autorisé à lire. Cependant, le nœud n'apparaît pas pour un utilisateur U (non attendu), ou pour tout autre membre du groupe G (attendu).Autorisations Jackrabbit pour plusieurs principaux

Quelqu'un pourrait-il m'aider à faire la lumière là-dessus? Est-ce que mon hypothèse est correcte, ou est-ce que Jackrabbit calcule les autorisations réelles différemment? Ou est-ce juste une erreur dans ma mise en œuvre de sécurité?

+0

Vous pouvez également utiliser 'Privilege [] AccessControlManager.getPrivileges (String absPath)' pour obtenir tous les privillés pour la session en cours sur le noeud – Aroniaina

+0

Essayez de télécharger la spécification JCR http://download.oracle.com/otndocs/jcp /content_repository-2.0-pfd-oth-JSpec. et assurez-vous de le lire si vous travaillez sur JackRabbit. La gestion du contrôle d'accès est à la section 16 – Aroniaina

Répondre

1

De this article:

The list of access rights applicable for the subject is constructed from: 

    - the rights that you assign directly to the user account 
    - plus all rights assigned to any of the groups that the user belongs to 

signifie que Jackrabbit prendre le privilège de groupe au lieu de privilège de l'utilisateur. Vous pouvez lire l'intégralité de l'article, c'est bon pour la sécurité de JackRabbit.

+0

Merci pour le lien. C'était très utile. mais, sur la base, je dirais que l'utilisateur a la priorité: Ordre de priorité Les droits d'accès CRX sont évalués comme suit: - directeurs d'utilisateur ont toujours préséance sur les chefs de groupe indépendamment: leur ordre dans la liste de contrôle d'accès leur position dans la hiérarchie des nœuds – vdjurovic