答案 0 :(得分:3)
当前的索赔管理实现不支持对索赔值具有唯一约束
但是您可以自定义用户存储以实现此目的。您可以参考此documentation以获得有关自定义的更多信息。
在设置它们之前,您需要覆盖setUserClaimValue
和setUserClaimValues
并检查声明值是否存在。
例如,setUserClaimValue的自定义必须类似于以下内容
@Override
public void setUserClaimValue(String userName, String claimURI, String claimValue, String profileName)
throws UserStoreException {
if (// ClaimURI which needs to be unique) {
String[] userList = getUserList(claimURI, claimValue, profileName);
if (userList.length > 0) {
throw new UserStoreException("Unique constraint violation for " + claimURI);
}
}
super.setUserClaimValue(userName, claimURI, claimValue, profileName);
}
答案 1 :(得分:1)
您的要求应该是向每个登录用户提供唯一的电子邮件。如果这是要求,建议您将身份服务器电子邮件配置为用户名。
https://is.docs.wso2.com/en/5.9.0/learn/using-email-address-as-the-username/