这与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
答案 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">(& (objectClass=person)(|(userPrincipalName=?)(sAMAccountName=?)))</Property>
user-mgt.xml
中的
答案 2 :(得分:0)
是的,是否可以将用户名用作电子邮件或用户名。为此,您需要按照以下步骤进行操作
<EnableEmailUserName>true</EnableEmailUserName>
<Property name="UsernameWithEmailJavaScriptRegEx">[a-zA-Z0-9@._-|//]{3,30}$</Property>
<Property name="UsernameJavaRegEx">[a-zA-Z0-9@._-|//]{3,30}$</Property>
<Property name="UsernameJavaScriptRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
您可以找到更多详情here。