2017-07-12 1 views
1

チェーンで最初に呼び出されるhttpcontextでAEM 6.3にフィルタを登録する方法を教えてください。ここでの目標は、AEMに到着するリクエストをインターセプトしてHTTPヘッダーを追加することです。基本的にSSOログイン用のユーザー情報でHTTPヘッダー値を設定しようとしています。このパターンはCQ6.1で動作していましたが、現在は動作を停止しています。どのようにしてAEM 6.3にHTTPリクエスト処理中にチェーン内で最初に呼び出されるhttpcontextを登録できますか?

答えて

3

AEM 6.3では、スリングフィルタに新しいロジックが導入されていません。

/system/console/requestトレースを使用してフィルタの順序/優先度を確認できます。フィルタの優先度は、@SlingFilter属性のorderプロパティによって次のように決定されます。

@SlingFilter(
    label = "Filter Label", 
    description = "implementation of a Sling Filter", 
    generateComponent = true, 
    generateService = true, 
    order = 0, 
    scope = SlingFilterScope.REQUEST) // REQUEST, INCLUDE, FORWARD, ERROR, COMPONENT (REQUEST, INCLUDE, COMPONENT) 
    public class MySlingFilter implements Filter { 
     ////// Implementation 
    } 

財産規則に従ってい順:Integer.MAX_VALUEのに

  • これはデフォルトで、このプロパティが設定されていない場合は、あなたのフィルタは、フィルタチェーンの最後にあることを意味します。

  • 値は、先に呼び出されるようにフィルタを昇格させるには、0または負にすることができます。

このプロパティを確認して変更して、この問題が解決するかどうかを確認してください。

+0

フェリックスSCRはメンテナンスモードで、新しいユーザーは@Anthony Piontkowski – Jdruwe

2

Apache Felixの一部のバージョンでは、アノテーション@SlingFilterが存在しないため、以下のようにマッピングを使用できます。

@Component(service = Filter.class, property = { 
     EngineConstants.SLING_FILTER_SCOPE + "=" + EngineConstants.FILTER_SCOPE_REQUEST, 
     EngineConstants.SLING_FILTER_PATTERN + "=..." 
}) 
public class SomeFilter implements Filter { 
関連する問題