1. Apache Sling Distribution Agent — 同步代理工廠

啟用用戶同步

  • 論作者

    • 以管理員權限登入

    • 存取 Web主控台

    • 找出 Apache Sling Distribution Agent - Sync Agents Factory

      • 選取要開啟以進行編輯的現有設定(鉛筆圖示)

        驗證 name: socialpubsync

      • 選取 Enabled 核取方塊

      • 選取 Save

chlimage_1-387

2.建立授權用戶

設定權限
此授權使用者將用於步驟3,以在作者上設定Sling分送。

CAUTION
必須建立新用戶。
  • 指派的預設使用者為 admin.
  • 請勿使用 *communities-user-admin *user*.*

如何添加ACL

  • 存取CRXDE Lite

  • 選取 /home 節點

  • 在右窗格中,選取 Access Control 標籤

  • 選取 + 添加ACL項的按鈕

    • 主體: 搜索為用戶同步建立的用戶
    • 類型: Allow
    • 權限: jcr:all
    • 限制 rep */activities/*
    • 選取 確定
  • 選取 全部儲存

chlimage_1-388

另請參閱

3.AdobeGranite分發 — 加密密碼傳輸機密提供程式

設定權限

一旦成為授權使用者,即為​ administrators ​使用者群組(已在所有發佈例項上建立),必須在作者上將該已授權使用者識別為具有從作者同步使用者資料至發佈之權限。

  • 論作者

    • 以管理員權限登入

    • 存取 Web主控台

    • 找出 com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name

    • 選取要開啟以進行編輯的現有設定(鉛筆圖示)

      驗證 property name : socialpubsync-publishUser

    • 將使用者名稱和密碼設為 授權使用者 在步驟2中建立

      • 例如, usersync-admin

chlimage_1-389

4. Apache Sling Distribution Agent - Queue Agent Factory

啟用用戶同步

  • 發佈時間 :

    • 以管理員權限登入

    • 存取 Web主控台

    • 找出 Apache Sling Distribution Agent - Queue Agents Factory

      • 選取要開啟以進行編輯的現有設定(鉛筆圖示)

        驗證 Name : socialpubsync-reverse

      • 選取 Enabled 核取方塊

      • 選取 Save

    • 重複 每個發佈例項

chlimage_1-390

5.AdobeGranite分佈 — 差異觀察器工廠

啟用組同步

  • 每個發佈例項 :

    • 以管理員權限登入

    • 存取 Web主控台

    • 找出 Adobe Granite Distribution - Diff Observer Factory

      • 選取要開啟以進行編輯的現有設定(鉛筆圖示)

        驗證 agent name : socialpubsync-reverse

      • 選取 Enabled 核取方塊

      • 選取 Save

chlimage_1-391

6. Apache Sling Distribution觸發程式 — 排程觸發程式工廠

(可選)修改輪詢間隔

依預設,作者每30秒會輪詢一次變更。 若要變更此間隔:

  • 論作者

    • 以管理員權限登入

    • 存取 Web主控台

    • 找出 Apache Sling Distribution Trigger - Scheduled Triggers Factory

      • 選取要開啟以進行編輯的現有設定(鉛筆圖示)

        • 驗證 Name : socialpubsync-scheduled-trigger
      • 設定 Interval in Seconds 到所需間隔

      • 選取 Save

chlimage_1-392

為多個發佈執行個體進行配置

預設設定適用於單一發佈執行個體。 由於啟用用戶同步的原因是同步多個發佈實例(例如對於發佈場),因此需要將其他發佈實例添加到同步代理工廠。

7. Apache Sling Distribution Agent — 同步代理工廠

新增發佈例項:

chlimage_1-393

  • 導出器端點
    每個發佈者都應有匯出端點。 例如,如果有2個發佈者,localhost:4503和4504,則應有2個項目:

    • http://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • http://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • 匯入工具端點
    每個發佈者都應有匯入工具端點。 例如,如果有2個發佈者,localhost:4503和4504,則應有2個項目:

    • http://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • http://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
  • 選取 Save

8.AEM Communities使用者同步接聽程式

(可選)同步其他JCR節點

如果有需要在多個發佈執行個體間同步的自訂資料,則:

chlimage_1-394

  • 節點類型

    這是要同步的節點類型清單。 此處需要列出sling:Folder以外的任何節點類型(sling:folder需另行處理)。

    要同步的節點類型的預設清單:

    • rep:User
    • nt:unstructured
    • nt:resource
  • 可忽略的屬性

    這是在偵測到任何變更時將忽略的屬性清單。 對這些屬性所做的更改可能會作為其他更改的副作用而同步(因為同步始終在節點級別),但對這些屬性所做的更改本身不會觸發同步。

    要忽略的預設屬性:

    • cq:lastModified
  • 可忽略節點

    同步期間將完全忽略的子路徑。 這些子路徑下的任何內容將隨時同步。

    要忽略的預設節點:

    • .token
    • 系統
  • 分佈式資料夾

    大部分的Sling:Folders會遭到忽略,因為不需要同步。 此處列出幾個例外。

    要同步的預設資料夾

    • 區段/計分
    • 社交/關係
    • 活動

9.不重複Sling ID

CAUTION
如果Sling ID在兩個或多個發佈執行個體之間相符,則使用者群組同步將會失敗。

如果Sling ID在發佈伺服器陣列中用於多個發佈執行個體相同,則不會同步使用者群組。

若要驗證所有Sling ID值是否不同,請在每個發佈例項上:

  1. 瀏覽 http://<host>:<port>/system/console/status-slingsettings
  2. 檢查 Sling ID

chlimage_1-395

如果發佈例項的Sling ID符合任何其他發佈例項的Sling ID,則:

  1. 停止具有相符Sling ID的其中一個發佈執行個體

  2. 在crx-quickstart/launchpad/felix目錄中

    • 搜尋並刪除名為的檔案 sling.id.file

      • 例如,在Linux系統上:

        rm -i $(find . -type f -name sling.id.file)

      • 例如,在Windows系統上:

        use windows explorer and search for *sling.id.file*

  3. 啟動發佈例項

    • 啟動時,系統會為其指派新的Sling ID
  4. 驗證 Sling ID 現在為不重複

重複這些步驟,直到所有發佈執行個體都有唯一的Sling ID。

保管庫包生成器工廠

為了正確同步更新,必須修改保管庫包生成器以便用戶同步:

  • 每個AEM發佈例項

  • 存取 Web主控台

  • 找出 Apache Sling Distribution Packaging - Vault Package Builder Factor

    • Builder name: socialpubsync-vlt
  • 選取「編輯」圖示

  • 新增2 Package Filters :

    • /home/users|-.*/.tokens
    • /home/users|-.*/rep:cache
  • 原則處理:

    • 要用新節點覆蓋現有的rep:policy節點,請添加第三個包篩選器:

      • /home/users|+.*/rep:policy
    • 防止策略被分發,請設定

      • Acl Handling : IGNORE

chlimage_1-396

當……

使用者在發佈時自行註冊或編輯設定檔

根據設計,在發佈環境中建立的使用者和設定檔(自行註冊)不會出現在製作環境中。

當拓撲為 發佈農場 和使用者同步已正確設定, *user *和 使用者設定檔 會使用Sling分送在整個發佈伺服器陣列中同步。

使用安全控制台建立用戶或組

根據設計,在發佈環境中建立的使用者資料不會出現在製作環境中,反之亦然。

使用者管理與安全性 console用於在發佈環境中新增使用者,使用者同步會將新使用者及其群組成員資格同步至其他發佈執行個體(如有必要)。 使用者同步也會同步透過安全性主控台建立的使用者群組。

疑難排解

如何讓使用者同步離線

若要讓使用者同步離線, 刪除發佈者手動同步資料,則分發隊列必須為空和安靜。

要檢查分發隊列的狀態,請執行以下操作:

  • 在作者上:

    • 使用 CRXDE Lite

      • 查找 /var/sling/distribution/packages

        • 使用模式命名的資料夾節點 distrpackage_*
    • 使用 封裝管理員

      • 查找掛起的包(尚未安裝)

        • 以模式命名 socialpubsync-vlt*
        • 建立者 communities-user-admin

當發佈佇列為空時,停用使用者同步:

完成任務後,要重新啟用用戶同步:

使用者同步診斷

用戶同步診斷是一種工具,用於檢查配置並嘗試識別任何問題。

在製作時,只需從主控台導覽至 工具、操作、診斷、用戶同步診斷。

只要進入用戶同步診斷控制台,就會顯示結果。

這是未啟用「使用者同步」時顯示的內容:

chlimage_1-397

如何為發佈者運行診斷程式

從製作環境執行診斷時,通過/失敗結果將包含 [資訊] 區段顯示已設定的發佈例項清單以供確認。

清單中包含每個發佈執行個體的URL,該執行個體將對該執行個體執行診斷。 url參數 syncUser 會附加至診斷URL,且其值設定為 授權同步用戶 建立於 步驟2.

附註 :在啟動URL之前, 授權同步用戶 必須已登入該發佈執行個體。

chlimage_1-398

未正確新增設定

當使用者同步無法運作時,最常見的問題是其他設定 新增. 相反地,現有 預設配置應為 編輯.

以下是編輯預設設定在Web主控台中的顯示方式檢視。 如果出現多個執行個體,應移除新增的設定。

(作者)One Apache Sling Distribution Agent - Sync Agent Factory

chlimage_1-399

(作者)一個AdobeGranite發佈 — 加密密碼傳輸密碼提供者

chlimage_1-400

(發佈)一個Apache Sling Distribution Agent — 佇列代理工廠

chlimage_1-401

(發佈)一個AdobeGranite分佈 — 差異觀察者工廠

chlimage_1-402

(作者)一個Apache Sling Distribution觸發程式 — 排程觸發程式工廠

chlimage_1-403

在響應處理期間修改操作異常

如果記錄中顯示下列項目:

org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.

java.lang.IllegalStateException: This tree does not exist

然後確認區段 2. 建立授權用戶 被正確跟蹤。

本節說明如何建立已授權使用者(此使用者存在於所有發佈執行個體上),以及在作者的「機密提供者」OSGi設定中識別他們。 依預設,使用者為 admin.

授權使用者應成為 administrators 該群組的使用者群組和權限不應變更。

獲授權的使用者應在所有發佈執行個體上明確擁有下列權限和限制:

路徑jcr:allrep:glob
/homeX*/activities/*
/home/usersX*/activities/*
/home/groupsX*/activities/*

身為 administrators 群組中,獲授權的使用者應具有下列所有發佈執行個體的權限:

路徑jcr:alljcr:readrep:write
/etc/packages/sling/distributionX
/libs/sling/distributionX
/varX
/var/eventingXX
/var/sling/distributionXX

用戶組同步失敗

如果Sling ID在兩個或多個發佈執行個體之間相符,則使用者群組同步將會失敗。

請參閱區段 9. 唯一Sling ID

手動同步使用者和使用者群組

要配置或啟用用戶同步,請轉至步驟1: Apache Sling Distribution Agent — 同步代理工廠

發佈者無法使用時

發佈例項無法使用時,如果日後重新上線,則不應將其移除。 變更會排入發佈者佇列,一旦重新上線,就會處理變更。

如果發佈例項永遠不會重新上線,如果永久離線,則必須移除它,因為佇列累積會在製作環境中造成相當程度的磁碟空間使用。

發佈者關閉時,製作記錄會有類似的例外:

28.01.2016 15:57:48.475 ERROR
 [pool-12-thread-34-org_apache_sling_distribution_queue_socialpubsync_endpoint1
 (org/apache/sling/distribution/queue/socialpubsync/endpoint1)]
 org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync] could not deliver package distrpackage_1454014575838_a2b45ec8-0400-42f3-bed8-ae09b66381cb
 org.apache.sling.distribution.packaging.DistributionPackageImportException: failed in importing package ...

如何移除發佈者

Apache Sling Distribution Agent — 同步代理工廠,則分發隊列必須為空和安靜。

Experience Manager