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