Spring Security - переписывание URL - PullRequest
0 голосов
/ 20 апреля 2011

Я использую org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint с useForward=true и loginFormUrl="/login.jsp" и, следовательно, URL-адрес для входа в систему моего приложения - - http://sub.domain.com

При успешном входе в систему я перенаправляю на http://sub.domain.com/app.Сервлет Spring MVC Dispatcher сопоставлен со всеми /app/* запросами.

Мои вопросы:

  1. При выходе я перенаправляю пользователя на login.jsp, URL в браузереизменяется на http://sub.domain.com/login.jsp, но я хочу, чтобы URL был http://sub.domain.com, как было при первом входе в систему.Как мне этого добиться?
  2. После входа в систему, если пользователь пытается получить доступ - http://sub.domain.com, это приводит к ошибке 404.Как я могу перенаправить пользователя на http://sub.domain.com/app всякий раз, когда приходит запрос на http://sub.domain.com.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

Для 1) укажите logout-success-url в элементе безопасности пружины <logout>.

@ см. Главу B.1.13 Элемент Справочник по безопасности пружины

Для 2) укажите целевой URL по умолчанию (для успешного входа в систему)

 default-target-url="/app" 
 always-use-default-target="true" 

@ см. Главу B.1.5 Элемент Ссылка на Spring Security

или для общего решения @see Stackoverflow Вопрос: Перенаправление со страницы индекса в Spring и Tomcat

0 голосов
/ 20 апреля 2011

Для вашего первого вопроса отправьте перенаправление в корень вашего приложения во время выхода из системы

@RequestMapping(value="/logout", method={RequestMethod.GET, RequestMethod.POST} )
    public void logout(HttpServletResponse response) {

        //Do the real logout, clear session.

        try {
            response.sendRedirect("/");
            } catch (IOException e) {
               //handle the exception
            }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...