Плагин Grails Spring Security Core - добавление флеш-сообщения на страницу входа - PullRequest
2 голосов
/ 15 ноября 2010

Я использую подключаемый модуль Grails Spring Security Core для защиты определенного действия с использованием следующей аннотации.

@Secured(['IS_AUTHENTICATED_REMEMBERED'])

Это приводит к перенаправлению действия на мою страницу входа, если пользователь не вошел в систему.они вошли в систему, затем они перенаправлены на исходное действие.

Как добавить флэш-сообщение на страницу входа в этом сценарии, например

flash.message = "You must be logged in to submit a news story"

Чтобы уточнить, я бы толькохотите, чтобы сообщение отображалось, если пользователь был перенаправлен на страницу входа после попытки доступа к этому конкретному действию.Другие действия не вызовут сообщение.

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Я решил это следующим образом.

  1. Удаленный аннотации от действия.
  2. Добавьте следующий код в начале действия (новости и представить, будучисоответствующий контроллер и действие соответственно).

    if (!springSecurityService.isLoggedIn()) {
        flash.message = "You must be logged in to submit a news story."
        redirect(controller:"login", action: "auth", params:["spring-security-redirect" : "/news/submit"])
    }
    
  3. Добавьте следующее в форму входа.

    <input type='hidden' name='spring-security-redirect' value='${params['spring-security-redirect']}'/>
    
2 голосов
/ 15 ноября 2010

Добавьте, например, это к вашему виду входа:

<sec:noAccess url="/admin/listUsers">
    You must be logged in to view the list of users.
</sec:noAccess>

См. Документацию тега безопасности .

...