在AEM Communities中,從發佈環境(視設定的權限而定),網站訪客可成為成員、建立使用者群組,並編輯其成員描述檔。
使 用者資料是用來指代使用者、使 用者分析 及使 用者群組 **。
會 籍是指在發佈環境中注 ** 冊的使用者,而非在作者環境中註冊的使用者。
有關用戶資料的詳細資訊,請訪問管理用戶和用戶組。
根據設計,在發佈環境中建立的使用者資料不會出現在作者環境中。
在作者環境中建立的大部分使用者資料都會保留在作者環境中,不會同步或複製至發佈例項。
當拓撲為發佈群時,在一個發佈實例上進行的註冊和修改必須與其他發佈實例同步。 成員必須能夠登入並查看其資料在任何發佈節點上。
啟用用戶同步後,群中的發佈實例間的用戶資料會自動同步。
有關如何啟用發佈群的同步的詳細逐步說明,請參閱
VLT包:是發佈者上所做所有變更的zip檔案,需要在發佈者間散發。發佈者上的變更會產生由變更事件接聽程式挑選的事件。 這會建立包含所有變更的vlt套件。
散發套件:包含Sling的散發資訊。這是內容需要在何處發佈,以及上次何時發佈的資訊。
在作者上,當社群網站從Communities Sites主控台發佈時,其效果是replicate相關頁面,而Sling則分發動態建立的社群使用者群組,包括其會籍。
根據設計,在發佈環境(例如自行註冊、社交登入、LDAP驗證)中建立的使用者和設定檔不會出現在作者環境中。
當拓撲為publish farm且已正確設定使用者同步時,使用Sling散發,將user和user profile同步到發佈群。
雖然從發佈例項開始,但實際上會在作者例項上建立社群群組,以產生新網站頁面和新的使用者群組。
在程式中,新網站頁面會複製到所有發佈例項。 動態建立的社群使用者群組及其會籍是Sling散布至所有發佈例項。
根據設計,在發佈環境中建立的使用者資料不會出現在作者環境中,反之亦然。
當使用使用者管理與安全性主控台來在發佈環境中新增使用者時,使用者同步會視需要將新使用者及其群組成員資格同步到其他發佈執行個體。 使用者同步也會同步透過安全性主控台建立的使用者群組。
對於用戶生成的內容(UGC),在發佈實例上輸入的資料通過配置的SRP訪問。
依預設,使用者同步為disabled。 啟用用戶同步涉及修改existing OSGi配置。 啟用使用者同步後,不應新增任何新的設定。
使用者同步需仰賴作者環境來管理使用者資料分佈,即使使用者資料並非建立在作者上。
必備條件
在AEM Communities上啟用使用者同步時,必須進行下列設定。 請確定這些設定正確,以防止sling內容散發失敗。
此設定會擷取要在發佈者之間同步的內容。 此組態位於Author執行個體上。 「作者」必須追蹤所有位於其中的發佈者,以及同步所有資訊的位置。
配置中的預設值是單個發佈實例的預設值。 由於使用者同步對同步多個發佈例項(例如對於發佈群)很有用,因此需要將其他發佈例項新增至設定。
內容如何同步?
編寫實例ping發佈器的導出端點。 每當在特定發佈者(n)上建立或更新使用者時,「作者」會從其匯出端點取得內容,並且將內容推送至其他發佈者(n-1,即與擷取內容的發佈者不同)。
在AEM作者實例上:
以管理員權限登入。
訪問Web控制台。
找到Apache Sling Distribution Agent - Sync Agents Factory。
選取要開啟以進行編輯的現有設定(鉛筆圖示)。
驗證名稱:socialpubsync
.
選中Enabled複選框。
選擇使用多個隊列。
指定匯出器端點和匯入器端點(您可以新增更多匯出器和匯入器端點)。
這些端點會定義您要從何處取得內容,以及要將內容推播到何處。 作者從指定的導出器端點提取內容,並將內容推送到發佈者(其從中提取內容的發佈者除外)。
它可讓作者識別已授權的使用者,即具有從作者同步使用者資料以進行發佈的權限。
在所有發佈例項上建立的授權使用者可協助發佈者與作者連線,並在作者上設定Sling散發。 此授權用戶具有所有必需的ACL。
每當要在發佈者上安裝資料或從發佈者擷取資料時,作者就會使用此設定中設定的認證(使用者名稱和密碼)連線發佈者。
在AEM作者實例上:
以管理員權限登入。
訪問Web控制台。
找到Adobe Granite Distribution - Encrypted Password Transport Secret Provider。
選取要開啟以進行編輯的現有設定(鉛筆圖示)。
驗證屬性name:
socialpubsync
- publishUser
.
將用戶名和密碼設定為授權用戶。
例如,usersync
-admin
此設定可用來設定您要在發佈者間同步的資料。 當在允許根中指定的路徑中建立/更新資料時,「var/community/distribution/diff」將激活,並且建立的複製器從發佈商提取資料,並將其安裝到其他發佈商。
在AEM發佈例項上:
以管理員權限登入。
訪問Web控制台。
找到Apache Sling Distribution Agent - Queue Agents Factory。
選取要開啟以進行編輯的現有設定(鉛筆圖示)。
驗證名稱:socialpubsync
-reverse。
選中Enabled複選框並保存。
指定要在允許的根中複製的節點路徑。
對每個publish
實例重複。
此設定會同步發佈者的群組成員資格。
如果變更某個發佈者中的群組成員資格,並未更新其他發佈者的成員資格,請確定ref:members已新增至已搜尋的屬性名稱。
在每個AEM發佈例項上:
以管理員權限登入。
訪問Web控制台。
找到Adobe Granite Distribution - Diff Observer Factory。
選取要開啟以進行編輯的現有設定(鉛筆圖示)。
驗證代理名:socialpubsync
-reverse**
選中Enabled複選框。
將rep:members
指定為[!UICONTROL 中propertyName的description
,以查找屬性名稱]和保存。
此設定可讓您設定輪詢間隔(在輪詢間隔後,發佈者會被Ping化,而作者會提取變更),以同步發佈者的變更。
作者會每30秒(預設值)對發行者進行投票。 如果資料夾/var/sling/distribution/packages/ socialpubsync - vlt /shared中有任何套件,則會擷取這些套件,並將它們安裝在其他發佈者上。
在AEM作者實例上:
以管理員權限登入。
找到Apache Sling Distribution Trigger - Scheduled Triggers Factory
Name:
socialpubsync
-scheduled-trigger若是Sling散發中訂閱與後續版本有差異的問題,請檢查下列屬性是否已設定在AEM Communities User Sync Listener組態中:
在每個AEM發佈例項上:
以管理員權限登入。
訪問Web控制台。 例如,http://localhost:4503/system/console/configMgr。
找到AEM Communities User Sync Listener。
選取要開啟以進行編輯的現有設定(鉛筆圖示)。
驗證名稱:socialpubsync
-scheduled-trigger
設定下列NodeTypes
:
rep:用戶
nt
:unstructured
nt
:資源
rep:ACL
sling:Folder
sling:OrderedFolder
此屬性中指定的節點類型將同步,不同發佈者之間會同步通知資訊(部落格和後面的設定)。
在DistributedFolders中添加要同步的所有資料夾。 例如,
區段/計分
社交/關係
活動
將ignorablenodes
設為:
.token
系統
rep :cache
(由於我們使用粘滯會話,因此不需要將此節點同步到不同的發佈者)
AEM作者例項使用Sling ID來識別資料來自何處,以及它需要(或不需要)將套件傳回給哪些發佈者。
請確定發佈農場中的所有發佈者都有唯一的Sling ID。 如果Sling ID與發佈群中多個發佈例項的相同,則使用者同步將失敗。 由於作者不知道要從何處擷取套件,以及要在何處安裝套件。
在每個發佈例項上:
檢查Sling ID的值。
如果發佈例項的Sling ID符合任何其他發佈例項的Sling ID,則:
停止其中一個具有相符Sling ID的發佈例項。
在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_
啟動發佈例項。 在啟動時,會指派新的Sling ID。
驗證Sling ID現在是唯一的。
重複這些步驟,直到所有發佈例項都有唯一的Sling ID。
要正確同步更新,必須修改儲存庫包生成器以用於用戶同步。
在/home/users
中,建立/rep:cache
節點。 它是一個快取,用於發現,如果我們查詢節點的主體名稱,則可以直接使用該快取。
如果rep:cache
節點在發佈商之間同步,則用戶同步可以停止。
在每個AEM發佈例項上:
找到Apache Sling Distribution Packaging - Vault Package Builder Factory Builder名稱:socialpubsync-vlt
選擇編輯表徵圖。
新增兩個套件篩選:
/home/users|-.\*/.tokens
/home/users|**+**.\*/rep:cache
政策處理
要用新節點覆蓋現有的rep :policy
節點,請添加第三個包過濾器:
/home/users|**+**.\*/rep:policy
要防止策略被分發,請設定
Acl處理:忽略
如果Sling散發失敗,請嘗試下列除錯步驟:
檢查是否 未正確添加配置。 請確定未新增或編輯多個設定,而應編輯現有的預設設定。
檢查授權的使用者權限。如果軟體包未正確安裝,則檢查在第一個發佈實例中建立的授權用戶是否具有正確的ACL。
若要驗證此項,請改變作者例項上的已建立的授權使用者,而不是變更Adobe Granite Distribution - Encrypted Password Transport Secret Provider組態,以使用管理員使用者憑證。 現在,請嘗試再次安裝軟體包。 如果用戶同步與管理員憑據配合工作正常,則表示建立的發佈用戶沒有適當的ACL。
檢查比較觀察器工廠配置。例如,如果發佈群中只有特定節點未同步,則群組成員未同步,則請確定Adobe Granite Distribution - Diff Observer Factory組態已啟用,且rep:members設定在lookdproperties names中。
檢查AEM Communities使用者同步監聽器設定。 如果已建立的使用者已同步,但訂閱和後續作業無法運作,請確定AEM Communities使用者同步接聽程式設定有:
檢查在「發佈」實例上建立用戶時生成的日誌。如果上述設定已正確設定,但使用者同步仍無法運作,則請檢查在建立使用者時產生的記錄檔。
檢查日誌順序是否相同,如下所示:
15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7422] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C, /home/users/C/Cw-5avWqilmqsNn5hCvK]
15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7422] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ2: ADD paths=[/home/users/C, /home/users/C/Cw-5avWqilmqsNn5hCvK], user=communities-user-admin
15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7431] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C/Cw-5avWqilmqsNn5hCvK, /home/users/C/Cw-5avWqilmqsNn5hCvK/profile, /home/users/C/Cw-5avWqilmqsNn5hCvK/rep:policy]
15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7431] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ3: ADD paths=[/home/users/C/Cw-5avWqilmqsNn5hCvK, /home/users/C/Cw-5avWqilmqsNn5hCvK/profile, /home/users/C/Cw-5avWqilmqsNn5hCvK/rep:policy], user=communities-user-admin
15.05.2016 18:33:01.757 *INFO* [sling-oak-observation-7431] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337181554_ebb27ad9-a861-4405-9342-d64c916654e2:0.0.1
15.05.2016 18:33:01.820 *INFO* [sling-oak-observation-7422] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337181554_58811273-5861-48fe-95d2-4aff367b99c3:0.0.1
15.05.2016 18:33:02.023 *INFO* [sling-oak-observation-7430] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C/Cw-5avWqilmqsNn5hCvK/profile]
15.05.2016 18:33:02.023 *INFO* [sling-oak-observation-7430] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ4: ADD paths=[/home/users/C/Cw-5avWqilmqsNn5hCvK/profile], user=communities-user-admin
15.05.2016 18:33:02.273 *INFO* [sling-oak-observation-7430] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337182039_f34f4fa6-10b9-42eb-8740-4da9d4d38f99:0.0.1
若要除錯:
禁用用戶同步:
在AEM作者例項上,以管理員權限登入。
訪問Web控制台。 例如,http://localhost:4502/system/console/configMgr。
找到設定Apache Sling Distribution Agent - Sync Agents Factory。
取消選中Enabled複選框。
在作者實例上禁用用戶同步時,(導出器和導入器)端點將被禁用,而作者實例是靜態的。 作者不會ping或讀取vlt套件。
現在,如果使用者是在發佈例項上建立,vlt套件會建立在/var/sling/distribution/packages/ socialpubsync - vlt /data節點中。 如果這些套件是由作者推送至其他服務。 您可以下載並擷取此資料,以檢查所有屬性都推送至其他服務。
前往發行者,並在發佈者上建立使用者。 因此,會建立事件。
檢查在建立用戶時建立的日誌順序。
檢查vlt軟體包是否在/var/sling/distribution/packages/socialpubsync-vlt/data
上建立。
現在,在AEM作者例項上啟用使用者同步。
在發行者上,變更Apache Sling Distribution Agent - Sync Agents Factory中的匯出器或匯入器端點。
我們可以下載並擷取封裝資料,以檢查哪些屬性已推送至其他發佈者,以及哪些資料遺失。