Grails Spring Security @Secured не работает - PullRequest
2 голосов
/ 03 декабря 2011

Мне удалось реализовать аннотацию @Secured в одном контроллере моего приложения.Тем не менее, @Secured ('ROLE_ADMIN') НЕ будет работать где-либо еще в рамках проекта.

Он будет работать только в любом месте моего контроллера программы, а не где-либо еще.

Например, если яиспользуйте это так:

@Secured('ROLE_ADMIN')

IDE дает мне;Несколько маркеров в этой строке - Groovy: класс Secured не является аннотацией в @Secured - Groovy: не удается разрешить класс Secured, не удается найти класс для

Я даже пытался проверить файл Spring Security Config, чтобы проверить,аннотации были установлены правильно (что, казалось бы, они были).Есть идеи?Пожалуйста, помогите.

Спасибо.

Ответы [ 2 ]

9 голосов
/ 14 декабря 2011

Возможно, вам не хватает требуемого импорта.

В верхней части каждого контроллера, где вам нужны аннотации, используйте импорт grails для Secured. Затем вы можете использовать аннотации для класса или метода по мере необходимости.

import grails.plugin.springsecurity.annotation.Secured

//import grails.plugins.springsecurity.Secured; - this is in older version, 
//                                                grails 2.0 and older

@Secured(['ROLE_ADMIN', 'ROLE_USER', 'ROLE_SUPERVISOR'])
class myClass {

}

Надеюсь, это поможет.

0 голосов
/ 03 декабря 2011

Попробуйте:

@PreAuthorize("hasRole('ROLE_ADMIN')" )

И добавьте поддержку аннотаций в конфигурации пружины:

    <!-- Allow configuration annotation (@Annotation-based configuration)-->
<context:annotation-config />

<!-- Enable scan classes -->
<context:component-scan base-package="com.your.package" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...