У меня возникла проблема, когда мой метод Controller с @RolesAllowed работает правильно, но если я пытаюсь использовать @Secured, я получаю AccessDeniedException. Хотя я бы предпочел использовать @RolesAllowed Annotation, было объявлено, что для этого проекта мы должны использовать @Secured, потому что имя менее запутанно при сопоставлении с нашими прежними правами доступа.Spring Security @RolesAllowed Works, но @Secured дает мне AccessDeniedException весной 3.2 с Spring Security 3.1
У меня есть аннотация настроена следующим образом:
<security:global-method-security jsr250-annotations="enabled" secured-annotations="enabled" pre-post-annotations="enabled" />
Когда я использую @RolesAllowed("COMPANY_SEE_REPORTS")
, который имеет мой пользователь, он работает правильно. Когда я использую @Secured("COMPANY_SEE_REPORTS")
, я получаю AccessDeniedException. Просто чтобы убедиться, что @RolesAllowed работает правильно, я изменил роль на роль, которой не было, и в этот момент @RolesAllowed бросил. Поэтому мой вопрос: как я могу заставить @Secured работать правильно?
То есть на самом деле не вариант для нашей системы. Значение роли здесь не совсем применимо, и в нашей системе они назовут это «Право» (роль которого - сбор или права). У нас слишком строгая модель безопасности, и мы хотим включить индивидуальные права, а не только на уровень ролей. – haskovec
Вы пробовали рабочий стол с помощью «ROLE» в конце? – Ralph
Я не пробовал работу, потому что с точки зрения моей компании они не считают ее ролью, которую они считают правильным (поскольку здесь у нас очень мелкие права). На данный момент мы просто используем параметр, разрешенный ролями. Я могу позже выкопать источник весны, чтобы узнать, требуется ли им роль для использования @Secured. – haskovec