2017-11-08 35 views
0

現在、私は既存のrep:ポリシーを複製/コピー/バックアップできるソリューションを開発中です。なぜなら、私たちが仕事をすると、それは誤って取り除かれたからです。私はこの種の修正を適用しようとしていますが、失敗しています。それは無効なパスだと言います。クローン担当者:AEMのポリシー

javax.jcr.security.AccessControlException:OakAccessControl0006:隔離されたポリシーノード。親がタイプではない[担当者:AccessControllable]

 final Workspace ws = session.getWorkspace(); 
      ws.copy("/etc/commerce/products/abccompany/TvPackChannelMap/rep:policy","/tmp/nxt/TvPackChannelMap/rep:policy"); 

は私が担当者を取ることができることができますが、他の方法があります:コードスルーポリシー?

答えて

0

あなたの仕事が権限またはrep:ポリシーに触れていないことを確認する必要があります。これがあなたのための最善の方法です。存在しない、またはそのsessionあなたはノードへの読み取りアクセスを持っていない使用しているユーザーはありません/etc/commerce/products/abccompany/TvPackChannelMap/rep:policyのため

例外がある可能性があります。

パスが正しいことを確認し、それをコピーしてCRX/DEにコピーしてください。

rep:policyをあるノードから別のノードにコピーするコードを使用しようとしましたが正常に動作します。しかし、私はではない*はそのように許可をコピーすることをお勧めします。ベストプラクティスは、すべてのアクセス許可にAccess Control Management APIを使用することです。

+0

パスが存在し、管理者アカウントを使用しています。 – bluestella

0

netcentricからaccess control toolを確認、インストール、使用することができます。 ACエントリをエクスポートするためのjmxインターフェイスと、カスタムソリューションを実装するために使用できるAPIもあります。

0

その他の方法は、クエリ言語を通じてACLのアクセス許可を取得することです。 たとえば、[rep:principalName]がnullでないSELECT * FROM [rep:ACL]またはSELECT * FROM [rep:ACE]が結果を返す必要があります。

詳細については、GitHubで利用可能なACSコモンズACLパッケージャの実装を確認することをお勧めします。 リファレンスリンク - https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/bundle/src/main/java/com/adobe/acs/commons/packaging/impl/ACLPackagerServletImpl.java

関連する問題