【问题标题】:WSO2 identity server email or pseudo as usernameWSO2 身份服务器电子邮件或伪用户名
【发布时间】:2016-11-21 10:48:46
【问题描述】:

这与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

【问题讨论】:

    标签: wso2 wso2is


    【解决方案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>
    

    【讨论】:

    • 感谢您的回答,但在将用户添加到租户时这不起作用。使用完整跟踪编辑的问题
    【解决方案2】:

    是的,是否可以将用户名同时用作 emailusername。为此,您需要按照以下步骤操作,

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

    &lt;EnableEmailUserName&gt;true&lt;/EnableEmailUserName&gt;

    1. 在 [IS_HOME]/repository/conf/user-mgt.xml 文件中添加新属性,如下所示,

    &lt;Property name="UsernameWithEmailJavaScriptRegEx"&gt;[a-zA-Z0-9@._-|//]{3,30}$&lt;/Property&gt;

    1. 将 [IS_HOME]/repository/conf/user-mgt.xml 文件中的“UsernameJavaRegEx”和“UsernameJavaScriptRegEx”更改如下,

    &lt;Property name="UsernameJavaRegEx"&gt;[a-zA-Z0-9@._-|//]{3,30}$&lt;/Property&gt;

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

    您可以找到更多详细信息here

    【讨论】:

    • 感谢您的回答,但是当我将用户添加到租户时,这不起作用。使用堆栈跟踪编辑的问题
    • 我阅读了您的更新,但您使用的是不同的正则表达式,而不是我在上面添加的。当您使用此正则表达式时会出现您的问题 "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4 }$”。请使用我的配置验证您的设置。
    • 我测试了这两个解决方案,你的答案也发生了同样的错误,可能是一个错误。也许它可以在没有帐户确认的情况下工作?
    【解决方案3】:

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

    &lt;EnableEmailUserName&gt;true&lt;/EnableEmailUserName&gt;

    carbon.xml中,我们还需要更改UserNameSearchFilter来搜索AD的两个部分

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

    user-mgt.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多