如何在 WSO2 IS 5.9.0 中创建唯一声明?

How to make a unique claim in WSO2 IS 5.9.0?

我正在尝试在 WSO2 IS 管理控制台中做出独特的声明。但是找不到任何方法来做到这一点。

您的要求应该是向登录的每个用户发送唯一的电子邮件 in.If 这是我建议您将身份服务器电子邮件配置为用户名的要求。

https://is.docs.wso2.com/en/5.9.0/learn/using-email-address-as-the-username/

当前的声明管理实现不支持声明值的唯一约束

但是您可以自定义用户存储来实现这一点。您可以参考此 documentation 了解有关自定义的更多信息。 您需要覆盖 setUserClaimValuesetUserClaimValues 并在设置它们之前检查声明值是否存在。

例如,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);
}