WSO2is: получить настраиваемое сообщение об исключении с помощью команды SCIM

Я пишу простой пользовательский менеджер хранилища для 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"}]}

Что ж, на этом этапе мне нужно получить правильное исключение сообщения «Достигнуто максимальное количество глобальных пользователей», а не общее сообщение «Ошибка при добавлении пользователя».

Есть способ сделать это?

Благодарю.


person LukeT    schedule 31.07.2015    source источник


Ответы (3)


Если у вас есть проблемы со сборкой определенного компонента. Вы можете попробовать его в следующем выпуске [a] Identity Server.

создайте его с помощью maven, и вы можете найти дистрибутив внутри "product-is / modules / distribution / target".

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

person Gayan    schedule 14.08.2015
comment
Привет, Гаян, я не могу это построить. У меня ошибка при сборке модулей / p2-profile-gen. ошибка: "Не удалось найти org.wso2.carbon.identity: org.wso2.carbon.security.mgt.feature: zip: 4.5.0-SNAPSHOT в maven.wso2.org/nexus/content/groups/wso2-public ' - person LukeT; 17.08.2015
comment
Гаян, пожалуйста, не могли бы вы мне помочь? Я открываю проект с помощью netbeans, но могу найти только зависимость, я не могу найти исходный код для изменения? - person LukeT; 21.08.2015
comment
Добро пожаловать, Люк :) Также задайте дополнительные вопросы о wso2 Identity server и реализации scim, мы с радостью ответим. - person Gayan; 13.09.2015

Вам нужно немного изменить код компонента поставщика SCIM. Какую версию WSO2 Identity Server вы используете, чтобы я мог указать вам

person Gayan    schedule 09.08.2015
comment
Привет, Гаян, я использую версию 5.0.0 - person LukeT; 10.08.2015
comment
не могли бы вы помочь мне? Мне нужно сделать эту модификацию кода. Заранее спасибо. - person LukeT; 13.08.2015

См. Ссылку ниже [1]. В строке 159 класса SCIMUserManager измените «Ошибка при добавлении пользователя:« + user.getUserName () + »в хранилище пользователей ..» на e.getMessage () и замените 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

person Gayan    schedule 13.08.2015