2015-05-13 3 views
0

Я работаю над Java/J2EE & Весеннее веб-приложение. Мы используем весенние конфигурации безопасности для входа в систему. У меня есть требование и не получаю, как его реализовать. Требование: Всякий раз, когда анонимные пользователи нажимают ссылку «Просмотреть адресную книгу» на главной странице, они должны быть перенаправлены на страницу входа/регистрации. и заголовок страницы входа/регистрации должен быть установлен на «Пожалуйста, войдите/зарегистрируйтесь, чтобы просмотреть свою адресную книгу».Spring security - передача параметров на страницу входа

Теперь я не понимаю, на каком параметре я должен изменить заголовок страницы входа/регистрации.

Просьба предложить. Будет оценена ссылка на конкретные файлы/этапы.

С уважением, Arun

ответ

1

Вы можете использовать SavedRequest интерфейс. Spring security use SavedRequest Тип для хранения URL-адреса перенаправления и параметров.

  1. Создайте пользовательский контроллер входа, чтобы служить вашему виду login.jsp.
  2. Получить SavedRequest объект из HttpSessionRequestCache
  3. Получить запрошенный url и параметры savedRequest.
  4. Передайте его на страницу login.jsp как атрибут модели.

    @Controller 
    public class LoginController { 
        @RequestMapping("/login") 
        public ModelAndView showLoginPage(HttpServletRequest request, HttpServletResponse response) { 
    
         SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response); 
    
         String requestedUrl = savedRequest.getRedirectUrl(); 
         ModelAndView model = new ModelAndView("login"); 
         model.addObject("requestedUrl",requestedUrl); 
         return model; 
        } 
    } 
    

    Вы также можете получить параметры запроса на

    savedRequest.getParameterValues("parameterName"); 
    
+0

Hi sadasidha, httpSessionRequestCache уже есть в моем контроллере. Я не знал о его использовании. Спасибо, за ваш вклад. Он разрешил мою проблему до некоторой степени. На самом деле, теперь, когда я нажимаю ссылку «Просмотреть адресную книгу», она показывает правильное сообщение на странице входа/регистрации. Но тогда, если я нажму ссылку «Войти», а затем сохранит запрос, возвратив сохраненные параметры, и jsp снова отобразит сообщение адресной книги. У вас есть хороший способ справиться с этим сценарием? – Arun

+0

@Arun - Если запрос пришел на страницу входа в систему, вы можете заставить decession показать и/или удалить параметры из сохраненногоRequest. Также подумайте о принятии моего ответа, если это поможет. – mirmdasif

+0

Я могу исправить это после предоставления проверки для 'referer'. Благодаря! Невозможно принять какой-либо вариант. Уже проголосовали. – Arun

Смежные вопросы