WSO2身份服务器电子邮件或伪身份用户名

时间:2016-11-21 10:48:47

标签: wso2 wso2is

这与WSO2 identity server email as username完全相同,但我们希望同时选择提供用户名作为电子邮件地址或用户名(伪无@)。

我使用@了解租户完全限定名称的问题,但是我们不能更改租户完全合格的@字符吗?

是否可以同时使用电子邮件地址或用户名作为用户名,如果可以,您可以提供配置,我无法按照https://docs.wso2.com/display/IS520/Using+Email+Address+as+the+Username

进行操作

我编辑了我的问题来测试Rajjaz Mohammed和Pradeepa Wickramasinghe的答案:

我发表了评论<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._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ at org.wso2.carbon.user.core.common.AbstractUserStoreManager.addUser(AbstractUserStoreManager.java:1405)

如果我删除此标记<Property name="UsernameJavaRegEx">,则会收到以下错误:

TID: [1] [] [2016-11-22 13:16:50,409] admin@test.com@mytenant.com [1] [IS]ERROR {org.wso2.carbon.identity.mgt.util.Utils} - Unable to retrieve the claim for user : jacques.martin@mytenant.com org.wso2.carbon.user.core.UserStoreException: UserNotFound: User jacques.martin@mytenant.comdoes 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

3 个答案:

答案 0 :(得分:1)

尝试使用此行代码

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

使用此行的内容

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

答案 1 :(得分:0)

因为我们为Identity Store调用了AD,所以我们发现除了设置

之外

<EnableEmailUserName>true</EnableEmailUserName>

carbon.xml

,我们还需要更改UserNameSearchFilter以搜索AD的两个部分

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

user-mgt.xml

中的

答案 2 :(得分:0)

是的,是否可以将用户名用作电子邮件用户名。为此,您需要按照以下步骤进行操作

  1. 在[IS_HOME] /repository/conf/carbon.xml文件中通过取消注释启用电子邮件用户名,如下所示,
  2. <EnableEmailUserName>true</EnableEmailUserName>

    1. 将新属性添加到[IS_HOME] /repository/conf/user-mgt.xml文件中,如下所示,
    2. <Property name="UsernameWithEmailJavaScriptRegEx">[a-zA-Z0-9@._-|//]{3,30}$</Property>

      1. 更改了&#34; UsernameJavaRegEx&#34;和&#34; UsernameJavaScriptRegEx&#34;在[IS_HOME] /repository/conf/user-mgt.xml文件中,如下所示,
      2. <Property name="UsernameJavaRegEx">[a-zA-Z0-9@._-|//]{3,30}$</Property>

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

        您可以找到更多详情here