Как обработать исключение авторизации Shiro? - PullRequest
1 голос
/ 05 марта 2012

Я начал использовать shiro 1.1.0 в веб-приложении, используя Spring mvc 3.0.5 и zk 5.0.8 в качестве администратора.у меня не работала аннотация shiro, поэтому я указал requredroles в контексте приложения безопасности:

/admin = authc, roles[ADMIN]

, которое отлично работает и перенаправляет меня на неавторизованные страницы, которые я создал.Теперь у меня работает аннотация, поэтому я использовал @RequiresRoles (value = {"manager", "admin", "superadmin"}) поверх класса:

@RequiresRoles(value = {"manager","admin","superadmin"})
public class ContentController extends GenericForwardComposer {...}

и он выдает

org.apache.shiro.authz.UnauthorizedException: у субъекта нет роли [manager]

Есть ли что-то, что нужно активировать при использовании аннотации для такого рода авторизации, которую нужно поймать?

Спасибо, что прочитали это.

1 Ответ

0 голосов
/ 06 марта 2012

Согласно RequireRoles javadoc он должен быть определен для метода, а не для класса. Если текущий субъект не имеет требуемой роли, то Широ должен перенаправить на страницу запрещенного доступа.

[ ОБНОВЛЕНИЕ ] Я вижу, что на трекере ошибок Shiro есть открытая проблема для того же здесь . Так что это должно быть применимо и на уровне класса. Здесь - соответствующая тема.

...