Я запускаю приложение Grails с использованием Spring Security Core Plugin.Как заставить Grails Spring Security Core отображать другую страницу в зависимости от причины отказа в доступе
Когда пользователь уже вошел в систему, пытается получить доступ к странице без доступа к ней, всегда вызывается то же действие, что и 403
в UrlMappings.groovy.
Я изо всех сил пытался сделать свою заявку на другую страницу в зависимости от причины отказа в доступе. Например: Если требуется IS_AUTHENTICATED_FULLY
, я хочу перенаправить пользователя в форму, где он может повторно аутентифицироваться. Если требуется определенная роль, но нет, я хочу перенаправить пользователя на страницу, где он может запросить эту роль. И так далее ...
Кто-нибудь знает, как это сделать?
============================== ОБНОВЛЕНИЕ ================ ===================
Я попытался решить проблему с помощью обратного вызова onAuthorizationEvent
, описанного на docs. К сожалению, параметр события всегда идентичен независимо от правила, которое вызвало его.
По крайней мере, у меня есть доступ к URI, от которого было отказано в доступе. Есть ли способ получить правила безопасности из URI, чтобы я мог сравнить роли и статус текущего пользователя и узнать, чего не хватает? Возможно, это решит проблему.
Хорошая работа. Вы можете принять собственный ответ. –
Спасибо. Просто сделал это;) – ylima