У меня есть устаревшее приложение, написанное на Struts 1. Единственная функция, которую я попросил добавить, - это защитить некоторые действия. В настоящее время любой пользователь может делать все, что захочет. Идея состоит в том, чтобы разрешить всем пользователям видеть данные, но выполнять операцию модификации блока, то есть модифицировать данные, которые пользователь должен войти в систему.Реализация Struts 2 Перехватчики с использованием Struts 1
Я знаю, что у Struts2 есть перехватчики, поэтому я мог прикрепить их к требуемым действиям и переслать пользователям для входа в систему при необходимости. Но как я могу сделать подобное в приложении Struts 1?
Моя первая идея состояла в том, чтобы создать свой собственный абстрактный класс действий:
public class AuthenticatedAction {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest theRequest,
HttpServletResponse theResponse) {
if (!logged) {
// forward to log in form
} else {
doExecute(mapping, form, request, response);
}
}
public abstract ActionForward doExecute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest theRequest,
HttpServletResponse theResponse);
}
Затем измените все действия, которые требуют проверки подлинности от
extends Action
в
extends AuthenticatedAction
затем добавить форму входа , действие входа (которое выполняет аутентификации и помещает этот статус в сеанс) и меняет JS P для отображения блока аутентификации, например «Вы (не вошли в систему) /», «Вход/Выход». Как я думаю, это должно решить проблему.
- Если это не решит проблему, объясните причину.
- Есть ли лучшие (более элегантные, такие как перехватчики) способ сделать это?
Благодарим вас заранее.
Boy Мне так жаль, что мне не нужен этот ответ, но жить так, как я. Спасибо за предоставление! :) – Art