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"}]}
さて、この時点で、「ユーザーの追加中にエラーが発生しました」という一般的なメッセージではなく、「グローバル ユーザーの最大数に達しました」という正しいメッセージ例外を取得する必要があります。
それを行う方法はありますか?
ありがとう。