2012-04-03 2 views
0

Мой проект находится в стойках1.2. Есть ли какие-либо возможности для реализации Token-перехватчика (struts2) в struts1.2? Я знаю, что это может быть реализовано с помощьюПерехватчик токенов в стойках 1.2

  1. saveToken(HttpServletRequest req)
  2. isTokenValid(HttpServletRequest req)
  3. resetToken(HttpServletRequest req)

Но я не хочу, чтобы добавить выше в каждом и каждое действие.

ответ

2

Я знаю struts2 но не struts1 (так что эти решения атаки с этой точки зрения, struts1 человек может иметь гораздо покрасивее решение относительно этого вопроса):

1) Добавить Spring (если он не существует уже) ... добавьте эти методы, используя AOP. [стоимость: возможно, изучение новой технологии]

2) Используйте Struts2 рядом с Struts1, сопоставляя .action с struts2 и .do с struts1 ... создаем пакет struts2, возможно, называемый «токеном» и, возможно, отображаемый в/токен с соответствующими действия с дикими картами, чтобы захватить то, что когда-либо вы бросаете на него ... которое направляет действия struts1. PS: Вы спросили, как это можно сделать ... это далеко не красиво, и я бы этого не сделал. [стоимость: усложняет логику отображения]

3) Преобразуйте все в struts2 и используйте токен-перехватчик. [стоимость: временные инвестиции]

4) Создайте новый базовый класс действия, действие которого будет расширяться, реализуя эти методы.

+0

Спасибо Кватернион, так как я использовал весну, я хотел бы пойти с первым решением – Vipul

0

Если вы хотите использовать TokenInterceptor в Struts 2, вам нужно обратиться к tokenSession-перехватчику.
Должен обрабатывать результат по имени = "invalid.token" в struts.xml в конкретном действии.
Страница, с которой ваше действие сгенерировано на этой странице, вы должны написать s: токен в заголовке

1

Перехватчики не существуют на Struts 1, возможно использование сервлет-фильтров. Но будьте осторожны, чтобы не контролировать токен в HTTP GET-запросах, чтобы не отклонять все запросы.

Servlet Filters and Event Listeners

saveToken() по всем запросу и isTokenValid() resetToken() по запросу POST.

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