Grails Spring Security Redirect после входа в систему - PullRequest
0 голосов
/ 26 января 2012

Приложение My Grails использует плагин безопасности Spring. Когда вы пытаетесь получить доступ к защищенному ресурсу, отображается форма входа в систему и путь к этому ресурсу сохраняется в session.SPRING_SECURITY_SAVED_REQUEST_KEY.

Я наблюдал следующее поведение:

  1. Перейдите к форме входа напрямую session.SPRING_SECURITY_SAVED_REQUEST_KEY == null , как и ожидалось
  2. Вернуться на главную страницу без входа в систему
  3. Попытка доступа к защищенному ресурсу /foo/bar. Форма входа отображается с путем к защищенному ресурсу, сохраненному в session.SPRING_SECURITY_SAVED_REQUEST_KEY , как и ожидалось
  4. Вернуться на главную страницу без входа в систему
  5. Доступ к форме входа напрямую. Путь к /foo/bar все еще сохраняется в session.SPRING_SECURITY_SAVED_REQUEST_KEY не так, как ожидалось

Если я сейчас войду, я перенаправлюсь на /foo/bar, хотя на шаге (5) я не пытался получить доступ к этому ресурсу - форма входа отображалась, потому что я перешел к ней напрямую.

Возникает вопрос: что должно отображаться после успешного входа в систему, когда пользователь переходит непосредственно на страницу входа? Страница, на которой они находились до входа в систему (PBL), выглядит разумной по умолчанию.


Подводя итог, хочу сказать следующее поведение:

  • Пользователь переходит к форме входа напрямую, и никакие значения не сохраняются в session.SPRING_SECURITY_SAVED_REQUEST_KEY => перенаправить на PBL после входа в систему PASS
  • Пользователь получает доступ к защищенному ресурсу => перенаправить на защищенный ресурс после входа в систему PASS
  • Пользователь переходит к форме входа в систему напрямую и значение сохраняется в session.SPRING_SECURITY_SAVED_REQUEST_KEY => перенаправить на PBL после входа в систему FAIL
...