Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > открыть доступ на setProvider


Автор: 4epT 27.1.2012, 16:52
Добрый день! Имеется Java applet, в нем происходит подпись закрытым ключом пользователя (выбирает из своего хранилища на компьютере), у пользователей возникла проблема, у них не установлен security provider ... пытаюсь ставить программно:

Код

private static void setProvider() {
        boolean isP = false;
        Provider[] prv = Security.getProviders();
        for (int i = 0; i < prv.length; i++) {
            if (prv[i].getName().startsWith("ProviderName")) {
                isP = true;
            }
        }
        if (isP == false) {
            Security.addProvider(new NameProvider());
        }
    } 


но вываливается исключение:

Код

java.security.SecurityPermission putProviderProperty.ProviderName)


как программно подкинуть этого провайдера ?

Автор: rang3r 28.1.2012, 15:19
Если это возможно, попробуй использовать Java Reflection API.
 Погугли по методу Class.getDeclaredMethods() -> Method#setAccessible(true). Но это только откроет закрытый метод.
Тоже самое можно сделать и с private полями. Class.getDeclaretedFields() -> Filed#setAccessible(). Может удасться напрямую подпихнуть ссылку в  
массив.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)