2009-03-28 7 views
1

La sécurité Acegi peut-elle être utilisée pour une application de réseau social où les utilisateurs peuvent définir leurs préférences de sécurité pour partager leurs données uniquement avec leurs amis?Spring Acegi - Plate-forme de réseau social

Le scénario courant des didacticiels Acegi est l'endroit où vous voulez autoriser des actions par rôle d'utilisateur, mais qu'en est-il d'autoriser les utilisateurs à afficher des données spécifiques, disons, uniquement celles de leurs amis?

Est-il possible d'utiliser Acegi pour cela? Comment?

+0

Je suis déplacé pour Grails, Grails utilisé plug-in Acegi pendant un certain temps et a décidé de se déplacer vers le plugin Apache Shiro moins mature pour sa simplicité –

Répondre

2

Réponse courte: oui. Notez que Acegi fait maintenant partie de Spring, et est maintenant connu comme Spring Security. En ce qui concerne la façon de le faire, c'est une question beaucoup plus compliquée, et il y a probablement autant de bonnes réponses que celles qui veulent essayer. Votre solution finale dépendra des besoins de l'application, de votre environnement de développement et de l'organisation pour laquelle vous concevez. Je suppose que vous voulez que tout le monde (ou la plupart) voient les informations de base, et que les informations sensibles n'apparaissent sur la page que si le demandeur est un ami. Je crois que le moyen le plus fondamental de tous impliquera l'utilisation du SecurityContext dans votre servlet/contrôleurs/ressources (beaucoup trop de façons de concevoir une application web pour faire des suppositions ici), et des modèles de pages (jsf, jsp, etc. .., etc ..), pour obtenir l'accès à l'utilisateur actuellement authentifié, et inclure uniquement les informations auxquelles l'utilisateur est autorisé à accéder.

1

Les éléments fondamentaux de la sécurité du printemps sont

- Security Interceptor 
    - Authentication Manager 
    - Access Decision Manager 
    - Run-As Manager 
    - After-Invocation Manager 

La mise en œuvre effective d'un intercepteur de sécurité dépendra de ce que ressource est garanti. Si vous sécurisez une URL dans une application Web, l'intercepteur de sécurité sera implémenté en tant que filtre de servlet. Mais si vous sécurisez une invocation de méthode, des aspects seront utilisés pour renforcer la sécurité.

Un intercepteur de sécurité fait un peu plus que d'intercepter l'accès aux ressources pour renforcer la sécurité. Il n'applique pas de règles de sécurité. Au lieu de cela, il délègue cette responsabilité aux différents gestionnaires. En utilisant un (des) gestionnaire (s) approprié (s), vous parviendrez à satisfaire vos exigences.

Référence: Manning Printemps en action 2e édition Août 2007

Questions connexes