Отображение страницы входа в систему безопасности Grails Spring - PullRequest
1 голос
/ 20 января 2012

Я использую плагин безопасности Spring в приложении Grails.Существует две причины, по которым отображается страница входа в систему

  1. Пользователь перешел на нее напрямую
  2. Пользователь попытался получить доступ к странице, доступной только зарегистрированным пользователям

Только в случае (2) я хочу отобразить сообщение типа «Вы пытались получить доступ к странице, требующей входа в систему», но в коде GSP страницы входа в систему я не могу найти способможно ли провести различие между (1) и (2)?

Ответы [ 2 ]

1 голос
/ 20 января 2012

Когда вы получаете перенаправление, Spring Security сохраняет SavedRequest в сеансе под ключом SPRING_SECURITY_SAVED_REQUEST_KEY, чтобы вы могли проверить его наличие в auth.gsp:

<g:if test='${session.SPRING_SECURITY_SAVED_REQUEST_KEY}'>
   // display "you attempted to access a page that requires login"
</g:if>
<g:else>
   // direct access to login
</g:else>
0 голосов
/ 20 января 2012

Вы можете изменить URL-адрес различных конфигураций безопасности Spring, указав на контроллер, а затем настроить его на основе информации в сеансе.В проекте 1.3.7 было сделано что-то вроде

security {
  authenticationFailureUrl = '/logout/doLogout'
  afterLogoutUrl = '/logout/doLogout'
}

, тогда было

class LogoutController {
   def doLogout = {
       def wasHere = session.getAttribute('some-attribute-you-set')
       if (wasHere) render view: 'requirelogin'
       else render view: 'normallogin'       
   }
}
...