struts2 Настройка StrutsPrepareAndExecuteFilter
Мы используем Struts2 StrutsPrepareAndExecuteFilter
, Конфигурация в web.xml:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Нам нужно реализовать аутентификацию / разрешение внутри этого общего перехватчика. Что будет легким путем для этого? Можем ли мы создать индивидуальный перехватчик, который расширяет StrutsPrepareAndExecuteFilter
и наша реализация внутри этого?
1 ответ
Вы никогда не должны делать настройку org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
,
Даже если это не так final
и не package protected
как и в других средах, расширение этого фильтра не является необходимым.
Вы должны изучить основы архитектуры Struts2. из двух слов.
Вы можете увидеть основной поток Struts2. Struts2 реализован в виде фильтра для обработки всех запросов и отправки их в действия через стек перехватчиков, которые используют большинство функций и возможностей инфраструктуры Struts2.
Поэтому, если вы хотите добавить какую-либо функцию, например аутентификацию, вам следует сначала подумать о расширении ее через перехватчик аутентификации. Этот перехватчик должен быть настроен так, чтобы он вызывался при каждом действии из входящих запросов. Посмотрите, как это делается в Struts2, добавив перехватчики в struts.xml
для всех действий класса.
Позже есть ссылка, которую вы можете использовать, чтобы написать собственный перехватчик для аутентификации. См. Есть ли способ перенаправить на другой класс действий без использования на struts.xml