2016-11-21 38 views
1

這是與WSO2 identity server email as username完全相同的問題,但我們希望同時提供用戶名作爲電子郵件地址或用戶名(pseudo without @)。WSO2身份服務器電子郵件或虛擬用戶名

我瞭解租戶完全限定名稱使用@的問題,但我們無法更改租戶完全限定的@字符嗎?

是否可以同時使用的電子郵件地址或用戶名作爲用戶名如果​​是的話,你可以提供的配置,我不能讓下面的https://docs.wso2.com/display/IS520/Using+Email+Address+as+the+Username

我編輯我的問題來測試Rajjaz穆罕默德和Pradeepa維克拉馬辛答案工作:

我評論<Property name="UsernameJavascriptRegEx"> 當我添加用戶,將不會@我得到: Caused by: org.wso2.carbon.user.core.UserStoreException: Username jacques.martin is not valid. User name must be a non null string with following format, ^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ at org.wso2.carbon.user.core.common.AbstractUserStoreManager.addUser(AbstractUserStoreManager.java:1405)

如果我刪除此標籤<Property name="UsernameJavaRegEx">我得到以下埃羅r:

TID: [1] [] [2016-11-22 13:16:50,409] [email protected]@mytenant.com [1] [IS]ERROR {org.wso2.carbon.identity.mgt.util.Utils} - Unable to retrieve the claim for user : [email protected] org.wso2.carbon.user.core.UserStoreException: UserNotFound: User [email protected] not exist in: PRIMARY at org.wso2.carbon.user.core.common.AbstractUserStoreManager.callSecure(AbstractUserStoreManager.java:168) at org.wso2.carbon.user.core.common.AbstractUserStoreManager.getUserClaimValues(AbstractUserStoreManager.java:697) at org.wso2.carbon.identity.mgt.util.Utils.getClaimFromUserStoreManager(Utils.java:189) at org.wso2.carbon.identity.mgt.util.Utils.getEmailAddressForUser(Utils.java:226) at org.wso2.carbon.identity.mgt.mail.AbstractEmailSendingModule.getNotificationAddress(AbstractEmailSendingModule.java:53) at org.wso2.carbon.identity.mgt.RecoveryProcessor.notifyWithEmail(RecoveryProcessor.java:541) at org.wso2.carbon.identity.mgt.services.UserInformationRecoveryService.registerUser(UserInformationRecoveryService.java:890) 與Pradeepa Wickramasinghe的答案相同的錯誤。

我的Java代碼如下: userInformationRecoveryClient.registerUser(user.getUsername(), user.getPassword(), claims, "default", tenant); 要求我已正確設置http://wwso2.org/claims/email

回答

0

是的,是有可能使用的用戶名都電子郵件地址用戶名。對於您需要按照下面的步驟,

  1. 在[IS_HOME] 取消註釋啓用郵箱的用戶名/repository/conf/carbon.xml如下文件,

<EnableEmailUserName>true</EnableEmailUserName>

  1. 將新屬性添加到[IS_HOME]/repository/conf/user-mgt。xml文件如下,

<Property name="UsernameWithEmailJavaScriptRegEx">[[email protected]_-|//]{3,30}$</Property>

  • 改變了 「UsernameJavaRegEx」 和 「UsernameJavaScriptRegEx」 在[IS_HOME] /repository/conf/user-mgt.xml文件作爲下面,
  • <Property name="UsernameJavaRegEx">[[email protected]_-|//]{3,30}$</Property>

    <Property name="UsernameJavaScriptRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> 
    

    你可以發現更多的細節here

    +0

    編輯謝謝你的回答,但是當我將用戶添加到承租人這是行不通的。問題與堆棧跟蹤 – gribo

    +0

    編輯我看了你的更新,但使用的是不是我在上面添加不同的正則表達式。當您使用此正則表達式「^ [A-ZA-Z0-9 ._-] + @ [A-ZA-Z0-9 .-] + \。[A-ZA-Z] {2,4您的問題發生} $」。請使用我的配置驗證您的設置。 –

    +0

    我測試了這兩個解決方案,發生同樣的錯誤與您的答案也可能是一個錯誤。也許它沒有帳戶確認工作? – gribo

    1

    嘗試使用此行代碼

    <Property name="UsernameJavaRegEx">^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$</Property> 
    

    insted的使用這條線

    <Property name="UsernameJavaScriptRegEx">^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$</Property> 
    
    +0

    感謝您的回答,但在將用戶添加到承租人時這不起作用。問題與完整跟蹤 – gribo

    0

    的因爲我們稱AD爲我們的身份商店,我們發現除了設置

    <EnableEmailUserName>true</EnableEmailUserName>

    carbon.xml,我們也需要改變UserNameSearchFilter搜索廣告的這兩個部分

    <Property name="UserNameSearchFilter">(&amp; (objectClass=person)(|(userPrincipalName=?)(sAMAccountName=?)))</Property>

    user-mgt.xml