2016-06-01 12 views
3

AEM 6.1環境では、Javaクラスでリソースリゾルバを取得するために非推奨のメソッドgetAdministrativeResourceResolverを避けようとしています。AEMでシステムユーザとバンドルするユーザ名を取得できません

Iは、システムユーザーを作成し、右基準に適合する既存のシステムユーザ(REP SystemUser:authorizableId、JCR:UUID、担当者:principalnameと人口特性とJCR:primaryTypeプロパティは、担当者である)を使用し、私はApache Sling Service User Mapping Serviceを構成

Screenshot of configuration

getServiceResourceResolverメソッドにアクセスするコードをサービスマッピングorg...:modifyJCR=oauthserviceを有する(または対応するユーザは、私が試した)します0

BundleContext context = FrameworkUtil.getBundle(this.getClass()).getBundleContext(); 
ServiceReference ref = context.getServiceReference(ResourceResolverFactory.class.getName()); 
resolverFactory = (ResourceResolverFactory) context.getService(ref); 
Map<String, Object> param = new HashMap<String, Object>(); 
param.put(ResourceResolverFactory.SUBSERVICE, "modifyJCR"); 
resourceResolver = resolverFactory.getServiceResourceResolver(param); 

はしかし、私はまだ私のコードからこのエラーを取得しています: Cannot derive user name for bundle org... [491] and sub service modifyJCR

誰が、まだサービスユーザーマッピングサービスを設定するとともに、システムのユーザーを使用して/行った後、このエラーに遭遇していますか?

コードを呼び出すユーザーがシステムユーザーを偽装する必要がありますか。 javaクラスはワークフローによって呼び出されるecmaスクリプトを介して呼び出され、adminとしてログインしています。複数のユーザーの管理者グループを偽装者として追加しようとしましたが、エラーが発生しました。

+0

システムユーザに適切な権限を与えていますか? –

+0

Sandeep、これは他の質問の重複ではありません。なぜなら私は全く同じソリューションを試しました。私はまた、正しいフォルダにアクセスするためにシステムユーザに適切な権限を与えました。まだログインエラーにぶつかっているので、ページを更新することさえありません。 – Lizzy

+0

まあ、大丈夫です。これはおかしい。私が見ているのは、ECMAスクリプトを使って呼び出すことだけです。私たちはJava Workflow Processを使用していました。 –

答えて

5

廃止予定のメソッドについて新しい方法を行うには、org.apache.sling.apiパッケージのバージョンが古すぎることが判明しました(2.2.4)。 AEM 6.2(バージョンの競合を避けたい)まではまだアップグレードできませんので、私は廃止予定のメソッドを使用する必要があります。 2.9.0などのより新しいバージョンでは、Apache Sling Service User Mapping Serviceの使用を許可する必要があります。私は別の部門の同僚からこの情報を見つけましたが、同様のセットアップをローカルで2.9.0の新しいバージョンで試してみましたが、以前のバージョンは問題なく動作しました。うまくいけば、これは、システムユーザの作成/使用とマッパーサービスの設定の解決に従った後に立ち往生してもログインの例外を取得する人を助けてくれるでしょう。

+1

これは質問の回答として選択する必要があります –

1

これは、getServiceResourceResolverメソッドでも同様に動作し、スリングAPIのバージョンを変更しません。 Apache Mapping Serviceコンソールにバンドル・パスが正しく登録されていることを確認してください。これは、pom.xmlに記載されているグループIDと成果物IDと一致する必要があります

関連する問題