javax.jcr.Session
はサービスではないため、@Reference
注釈を挿入することはできません。
は、次の操作を行うことができ、セッションを取得するには - AEM 6.xで
を、あなたはこのようなコードを使用すると仮定されています。
/**
* Gets the service resource resolver.
*
* @return resourceResolver.
* @throws LoginException - exception if unable to login to repo.
*/
public static ResourceResolver getServiceResourceResolver(ResourceResolverFactory resourceResolverFactory) throws LoginException {
final Map<String, Object> authParam = new HashMap();
authParam.put(ResourceResolverFactory.SUBSERVICE, APPLICATION_READER_SUBSERVICE.value());
return resourceResolverFactory.getServiceResourceResolver(authParam);
}
あなたは、なぜ彼は、サーブレットにおけるサービス・リソースリゾルバを取得する必要があります上記のアプローチのサンプル実装のhere
を参照してくださいだろうか?応答オブジェクトには、独自のセッションバインドされたリソースリゾルバがあり、そのセッションからセッションを直接抽出できます。 –
実際、ほとんどのユースケースでは、リクエストからのリソースリゾルバを使用してサーブレットでセッションを取得できます。 私の見解では、公開時にノードの操作を必要としないものは、スリングAPIを使用してセッションの必要なしに行うことができます。 公開するセッションには匿名ユーザーの権限があり、書き込み権限はありません。 CRUDやワークフローのセッションが必要な場合は、リソースリゾルバからのセッションを要求 –
@AmeeshTrikhaから使用しないことをお勧めします。これは悪い習慣とみなされ、脆弱性を引き起こします。パブリッシュアクセスでは通常匿名であり、これには書き込みアクセス権がありません。また、作成者にはユーザーが認証されており、権限によって特定の領域に書き込むことができない場合は、これを却下してはいけません。管理または技術ユーザーセッションは、スケジュールされたジョブとイベントリスナーでのみ意味を持ちます。 – Thomas