Как я могу вызвать Sling Filter перед AuthenticationHandler?

Я хочу поставить sling-фильтр перед обработчиком аутентификации, но мне не повезло.

Из журналов я вижу, что автообработчик всегда вызывается после моего фильтра. Есть ли хорошая документация по этому поводу? Можно ли поставить фильтр перед обработчиком аутентификации?

Оба работают, когда я помещаю журнал в метод extractCredentials обработчика авторизации и в метод doFilter фильтра. Но, к сожалению, мой фильтр вызывается после автообработчика.

Вот мои журналы:

11:50:55.924 AuthenticationHandler extractCredentials
11:50:56.004 Before chain.doFilter
11:50:56.332 After chain.doFilter

person nerd    schedule 13.08.2014    source источник
comment
Вы не можете этого сделать, как в моем ответе. Попробуйте опубликовать второй вопрос, где вы описываете, почему вы хотите это сделать и какого высокоуровневого результата вы хотите достичь - может быть, вообще не нужно создавать такой фильтр?   -  person Tomek Rękawek    schedule 13.08.2014


Ответы (2)


Аутентификация всегда выполняется перед обработкой фильтра:

  • Request level
    • Authentication
    • Разрешение ресурсов
    • Разрешение сервлета/скрипта
    • Обработка фильтра уровня запроса

(источник: документация Sling).

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

person Tomek Rękawek    schedule 13.08.2014
comment
Я нашел уродливое решение, если я использую шаблон, то мой фильтр не будет фильтром слинга, но он будет работать перед цепочками фильтров слинга. felix.apache.org/documentation/ подпроекты/ - person nerd; 14.08.2014
comment
aem-acs-sample работает в AEM 6.1, но в AEM 6.2 движок sling идет перед фильтром. @nerd, вы тестировали свои изменения в AEM 6.2 или 6.3? - person Sandeep Kumar; 05.01.2018
comment
@SandeepKumar Я не работал с AEM с 2015 года. :( - person nerd; 10.02.2018

Вы можете использовать препроцессор OSGI, он будет действовать как фильтр перед вызовом аутентификации, вы найдете спецификацию и один пример здесь: https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.http.whiteboard.html#service.http.whiteboard.servlet.preprocessors

person Gabriel Legarda    schedule 19.04.2021