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 を超える数のユーザーを挿入しようとすると、インターフェイスに「グローバル ユーザーの最大数に達しました」という例外メッセージが表示されます。

しかし、5 人のユーザーを介して SCIM でユーザーを追加しようとすると、次のメッセージが表示されます。

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

さて、この時点で、「ユーザーの追加中にエラーが発生しました」という一般的なメッセージではなく、「グローバル ユーザーの最大数に達しました」という正しいメッセージ例外を取得する必要があります。

それを行う方法はありますか?

ありがとう。

4

3 に答える 3

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 に答える
0

SCIM プロバイダー コンポーネントのコードを少し変更する必要があります。使用している WSO2 Identity Server のバージョンを教えてください。

于 2015-08-09T19:04:34.287 に答える