0

我正在为 wso2is 编写一个简单的自定义用户存储管理器。

这是代码:

public class CustomJDBCUserStoreManager extends JDBCUserStoreManager {
    private static Log log = LogFactory.getLog(CustomJDBCUserStoreManager.class);

    public CustomJDBCUserStoreManager() {
    }

    public CustomJDBCUserStoreManager(org.wso2.carbon.user.api.RealmConfiguration realmConfig,
                              Map<String, Object> properties,
                              ClaimManager claimManager,
                              ProfileConfigurationManager profileManager,
                              UserRealm realm, Integer tenantId)
    throws UserStoreException {
        super(realmConfig, properties, claimManager, profileManager, realm, tenantId, false);
    }

    @Override
    public void doAddUser(String userName, Object credential, String[] roleList,
                      Map<String, String> claims, String profileName,
                      boolean requirePasswordChange) throws UserStoreException {


        String[] users = super.doListUsers( "*", -1);

        int nUser = users.length;

        if (nUser > 5){
            throw new UserStoreException( "Reached the maximum number of global users" );
        }else{
            super.doAddUser( userName, credential, roleList, claims, profileName, requirePasswordChange );
        }

    }

}

代码工作。当我尝试从界面插入数量大于 5 的用户时,界面会给我异常消息“已达到全局用户的最大数量”。

但是,当我尝试通过 SCIM 在 5 个用户上添加用户时,我收到以下消息:

{"Errors":[{"description":"Error in adding the user: mrossi to the user store..","code":"500"}]}

好吧,在这一点上,我需要获得正确的消息异常“达到全局用户的最大数量”,而不是通用消息“添加用户时出错”。

有没有办法做到这一点?

谢谢。

4

3 回答 3

1

如果您在构建特定组件时遇到问题。您可以尝试 [a] Identity Server 下一个版本。

使用 maven 构建它,您可以在“product-is/modules/distribution/target”中找到分布。

[一] https://github.com/wso2/product-is/

于 2015-08-14T05:06:03.997 回答
0

您需要对 SCIM 提供程序组件进行少量代码修改。您使用的是什么版本的 WSO2 身份服务器,以便我可以指出您

于 2015-08-09T19:04:34.287 回答
0

请参考以下链接[1]。在 SCIMUserManager 类第 159 行中,将“添加用户时出错:”+ user.getUserName() +“到用户存储区..”更改为 e.getMessage() 并替换 repository/deployment/server/webapps 中的 wso2.war 也删除wso2 目录

[1] https://svn.wso2.org/repos/wso2/carbon/platform/branches/turing/components/identity/org.wso2.carbon.identity.scim.provider/4.2.2/src/main/java /org/wso2/carbon/identity/scim/provider/impl

于 2015-08-13T10:24:38.470 回答