2016-05-05 84 views
2

在我們當前的WSO2設置中,用戶執行自我創建後,我們將他的帳戶置於鎖定狀態,並向創建期間指定的地址發送確認電子郵件。此電子郵件有一個允許用戶驗證其帳戶的鏈接。WSO2發送恢復通知

出於開發目的,我們正試圖使用​​SOAP UI中的UserInformationRecoveryService wsdl來降低工作流程。我們似乎想要的服務被稱爲sendRecoveryNotification。下面是該服務的簽名:

sendRecoveryNotification(String username, String key, String notificationType) 

username參數僅僅是WSO2用戶的問題,這對我們的用戶名。對於notificationType,我們一直在使用email,這可能會觸發電子郵件發送給用戶。問題出在key參數。目前還不清楚應該用什麼值key,和我們所有的猜測總是導致這種錯誤響應:

用戶

18001無效驗證碼:tbiegeleisen @ abc.com @ tenant.com

我們也注意到其他幾個服務也期望有一個關鍵字,但不清楚如何獲得這個值。

有人可以闡明WSO2中用戶恢復的工作流程嗎?它似乎是一個Catch-22,它需要一個令牌來生成一個發送給用戶的新令牌。

回答

1

WSO2 documentation明確說明了使用通知進行恢復的工作流程。需要使用的key是呼叫到verifyUser() SOAP Web服務的返回值。該服務本身預計通常會從UI發送的驗證碼。以下是顯示恢復通知如何發送的代碼片段:

String cookies = client.login("[email protected]@tenant.com", "admin"); 
UserInformationRecoveryUtil userInfoutil = new UserInformationRecoveryUtil(webserviceUrl, cookies); 
CaptchaInfoBean captchaInfo = new CaptchaInfoBean(); 
captchaInfo.setImagePath(captchaPath); 
captchaInfo.setSecretKey(captchaKey); 
captchaInfo.setUserAnswer(captcha); 
String username = emailId + "@" + tenantDomain; 
String key = userInfoutil.verifyUser(username, captchaInfo); 

// now pass the key based on the Captcha along with the type of recovery action 
userInfoutil.sendRecoveryNotification(username, key, "accountUnLock");