Токен-перехватчик в стойках 1.2 - PullRequest
0 голосов
/ 03 апреля 2012

Мой проект в Struts 1.2. Есть ли возможность реализовать перехватчик токенов (Struts2) в Struts 1.2? Я знаю, что это может быть реализовано с помощью

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

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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

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

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

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

3) Конвертировать все в стойки2 и использовать токен-перехватчик.[стоимость: затраты времени)

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

1 голос
/ 22 мая 2017

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

Фильтры сервлетов и прослушиватели событий

saveToken () для всего запроса и isTokenValid () resetToken () для запроса POST.

0 голосов
/ 26 сентября 2012

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

...