J'ai un problème où ma méthode Controller avec @RolesAllowed fonctionne correctement mais si j'essaie d'utiliser @Secured, j'obtiens une exception AccessDeniedException. Bien que je préfère utiliser l'annotation @RolesAllowed, il a été déclaré que pour ce projet, nous devrions utiliser @Secured parce que le nom est moins confus lorsqu'il est mappé à nos droits d'accès hérités.Spring Security @RolesAllowed Works mais @Secured me donne AccessDeniedException au printemps 3.2 avec Spring Security 3.1
J'ai l'annotation configuré comme suit:
<security:global-method-security jsr250-annotations="enabled" secured-annotations="enabled" pre-post-annotations="enabled" />
Quand j'utilise @RolesAllowed("COMPANY_SEE_REPORTS")
que mon utilisateur, il fonctionne correctement. Quand j'utilise @Secured("COMPANY_SEE_REPORTS")
, j'obtiens une exception AccessDeniedException. Juste pour m'assurer que @RolesAllowed fonctionnait correctement, j'ai changé le rôle pour un rôle qui n'existait pas et à ce moment @RolesAllowed a jeté. Donc, ma question est comment puis-je @Secured fonctionner correctement?
Ce n'est pas vraiment une option pour notre système. La signification du rôle ne s'applique pas tout à fait ici et dans notre système ils l'appellent un droit (avec un rôle étant une collection ou des droits). Nous avons un modèle de sécurité trop fin et nous voulons activer les droits individuels et pas seulement au niveau des rôles. – haskovec
Avez-vous essayé le workarround avec "ROLE" à la fin? – Ralph
Je n'ai pas essayé le travail parce que du point de vue de mon entreprise, ils ne considèrent pas cela comme un droit (puisque nous avons des droits très fins ici). Nous utilisons simplement l'option des rôles autorisés pour le moment. Je peux creuser dans la source de printemps plus tard pour voir si elles ont besoin de rôle pour utiliser @Secured. – haskovec