весна не перенаправляет на целевой URL по умолчанию? - PullRequest
6 голосов
/ 28 декабря 2011

Я использую Spring Security для аутентификации.аутентификация работает нормально.но после аутентификации он не перенаправляет на html, в котором упоминается использование целевого URL по умолчанию в файле конфигурации безопасности Spring.Я получаю простое сообщение Успех .но не HTML-страницу, которая настроена.Я добавил строку ниже для перенаправления.

<form-login login-page="/login.jsp" default-target-url="/welcome.html"/>

я что-то пропустил для настройки.

Спасибо!

Ответы [ 5 ]

15 голосов
/ 28 декабря 2011

Если пользователь отправляется на страницу входа после запроса защищенного ресурса, он будет отправлен на первоначально запрошенную страницу после успешного входа в систему. default-target-url будет использоваться только в том случае, если пользователь вошел в систему, не запросив сначала защищенный ресурс (т. Е. Он перешел непосредственно на страницу входа).Если вы всегда хотите перейти к URL-адресу default-target-url, вы можете указать always-use-default-target = "true", как показано в примере ниже

<form-login login-page="/login.jsp" 
            default-target-url="/welcome.html" 
            always-use-default-target="true"/>
4 голосов
/ 22 ноября 2017

У меня была похожая проблема, и ответ выше подсказал мне подсказку, но, так как я использую конфиги непосредственно из класса Java, мне помогло следующее:

В docs.spring.io вы можете найти:

defaultSuccessUrl (String defaultSuccessUrl, boolean AlwaysUse)

Следовательно, при изменении

.defaultSuccessUrl("/home")

на

.defaultSuccessUrl("/home", true)

проблема была решена.

3 голосов
/ 24 октября 2012

Интересный момент здесь: если браузер запрашивает ресурс, который требует аутентифицированного сеанса - например, запрашивает файл javascript, требующий входа пользователя в систему, это приведет к ошибке 403, которая, если у вас есть страницы ошибок, настроенные весной илиweb.xml перенаправит пользователя на - однако пользователь никогда не увидит этого.

Затем, когда пользователь входит в систему, весной последний раз думает, что запрошенный пользователь был страницей с ошибкой, и поэтому пользователь получает указание настраница ошибки, а не страница по умолчанию, как вы настраиваете весной

0 голосов
/ 10 сентября 2015

Как вы можете видеть на изображении, есть какой-то плохой дизайн (IMO всегда следует перенаправить на the default-target-url). Когда вы переходите на URL-адрес входа с запрещенного ресурса, он будет перенаправлять вас на этот URL-адрес, а не через default-target-url. Просто используйте always-use-default-target="true", и вы получите желаемое поведение

http://i.stack.imgur.com/fj9ou.png

0 голосов
/ 19 марта 2015

Я знаю, что это довольно старый вопрос, но некоторые пользователи также могут иметь эту проблему и сейчас.

  1. Убедитесь, что вы можете получить доступ к странице welcome.html (относительно пути к контексту).Вы можете удалить intercept-url или получить к нему доступ сразу после входа в систему.
  2. Убедитесь, что вы также указали always-use-default-target="true"
  3. Если вы указали управление сеансом, убедитесь, что вы не перенаправлены сначала наinvalid-session-url.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...