Нужна ли нам настройка StrutsPrepareAndExecuteFilter в Struts2?

Мы используем 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, и реализовать нашу реализацию внутри него?


person Anoop Issac    schedule 26.04.2016    source источник
comment
Перехватчик в контексте S2 не является фильтром.   -  person Aleksandr M    schedule 26.04.2016


Ответы (1)


Вы никогда не должны настраивать org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.

Даже если это не final и не package protected, как в других фреймворках, расширять этот фильтр не нужно.

Вы должны изучить основы архитектуры Struts2. из Краткого содержания.

вы можете увидеть основной поток Struts2. Struts2 реализован как фильтр для обработки всех запросов и отправки их действиям через стек перехватчиков, которые используют большую часть функций и возможностей платформы Struts2.

Поэтому, если вы хотите добавить какую-то функцию, например аутентификацию, вам следует сначала подумать о ее расширении с помощью перехватчика аутентификации. Этот перехватчик должен быть настроен для вызова при каждом действии входящих запросов. Посмотрите, как это делается в struts2, добавляя перехватчики в struts.xml для всех классов действий.

Позже есть ссылка, которую вы можете использовать для написания собственного перехватчика для целей аутентификации. См. Есть ли способ перенаправить на другой класс действий без использования struts.xml

person Roman C    schedule 26.04.2016