2015-05-15 2 views
3

Я пытаюсь реализовать фильтр для проекта в Adobe CQ 5.6.1. Кажется изящным, чтобы его можно было использовать для выполнения некоторых, скажем, аутентификации, для каждой отображаемой страницы.Ограничение javax.servlet.Filter для определенного шаблона URL

Я прочитал на документации по Filters и я закодирован моим примечаниям так:

@SlingFilter(
     label = "Filter implementation", 
     metatype = true, 
     generateComponent = true, 
     generateService = true, 
     order = 1, 
     scope = SlingFilterScope.REQUEST 
     ) 
@Properties({ 
    @Property(name="service.description", value="A Filter"), 
    @Property(name="sling.filter.pattern", value="/some/path") 
}) 

Я скомпилированный мой код и посмотрел журналы, но так или иначе, это не похоже, фильтруются для этого конкретного пути, указанного в sling.filter.pattern. Кажется, я не нашел много примеров того, как это реализовать, поэтому я немного в темноте об этой функции. Я уверен, что я не хочу, чтобы этот фильтр запускался на каждом загружаемом URL-адресе.

Любые провода будут оценены. Благодаря!

+0

Похоже, что поддержка шаблона была добавлена ​​для [Sling Engine 2.4.0] (https://issues.apache.org/jira/browse/SLING-4294?jql=project%20%3D%20SLING%20AND% 20fixVersion% 20% 3D% 20% 22Engine% 202.4.0% 22% 20ORDER% 20BY% 20updated% 20DESC% 2C% 20priority% 20DESC% 2C% 20created% 20ASC) и AEM 5.6.1 использует 'Sling Engine 2.2.8' и AEM 6 использует «Sling Engine 2.3.10». Следовательно, они могут не вести себя так, как ожидалось. Возможно, я не совсем прав, поэтому отвечу экспертам. – rakhi4110

ответ

2

Как упоминалось в комментариях к вопросу, свойство сервиса sling.filter.pattern на фильтрах поддерживается только с V2.4.0 и более поздними версиями пакета org.apache.sling.engine. Я обновил документы на http://sling.apache.org/documentation/the-sling-engine/filters.html, чтобы упомянуть об этом.

+0

Спасибо @Bertrand & @ rakhi4110! Я дважды проверял свой POM, и, похоже, это так. Я использую 2.2.8. Вопрос в том, будут ли в моей настройке CQ 5.6.1 несовместимы, если я попытаюсь использовать Sling 2.4.0, чтобы правильно работать с функцией sling.filter.pattern? – ionmarx

+0

Я не могу сказать, что у меня с головой, но у sling engine 2.4.0, вероятно, потребуются другие обновления пакета, которые могут мешать. Следующая команда предоставляет детали, это много изменений: svn diff https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.2.8/ https: // svn .apache.org/репо/АЧС/слинг/теги/org.apache.sling.engine-2.4.0 / –

Смежные вопросы