• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

HTTP соединения

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
подключение по http из java библиотеки и прочие особенности
Начну со штатной библиотеки java.net
библиотека простая как грабли, тонкая настройка глобальна, а именно - куки, ssl доверие, прокси..., все это настраивается через глобальные переменные и как следствие влияет на все соединения в рамках jvm.
Вопрос о глобальности классов java.* в агентах и LS2J - отдельная тема, я не готов её подробно "раскрывать" (в силу недостаточных компетенций)

код для прокси, продублирую (на случай протухания)
Java:
    static void assignSystemProxy(String url){
        System.setProperty("java.net.useSystemProxies", "true");
        System.out.println("detecting proxies");
        List l = null;
        try {
            l = ProxySelector.getDefault().select(new URI(url));
        } 
        catch (URISyntaxException e) {
            e.printStackTrace();
        }
        if (l != null) {
            for (Iterator iter = l.iterator(); iter.hasNext();) {
                java.net.Proxy proxy = (java.net.Proxy) iter.next();
                System.out.println("proxy type: " + proxy.type());

                InetSocketAddress addr = (InetSocketAddress) proxy.address();

                if (addr == null) {
                    System.out.println("No Proxy");
                } else {
                    System.out.println("proxy hostname: " + addr.getHostName());
                    System.setProperty("http.proxyHost", addr.getHostName());
                    System.out.println("proxy port: " + addr.getPort());
                    System.setProperty("http.proxyPort", Integer.toString(addr.getPort()));
                }
            }
        }
    }
 

savl

Lotus Team
28.10.2011
2 599
311
BIT
192
Итак, в продолжении твоей идеи.
Я с клиента пытаюсь на открытый, это важно, адрес, сделать вызов.
У меня файлы грузятся в Documentum, с сервера всё работает, а на клиенте вот такая бага:
com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.lang.UnsupportedOperationException: Method not implemented.

Суть в том, что есть jar, он самописный, там классы для вебсервиса на стороне документума, из eclipse все ок срабатывает, из лотуса - шляпа.
Клиент 901FP8, сервер 901FP4, Eclipse_2019-06 + xpage plugin (собственно jar и собран с использованием плагина)
И вот я грешу на rt.jar клиента, так как есть аналогичная ошибка, при отправке запроса на SOAP сервис с использованием классов, созданных из wsdl.
Кто знает как лечить или сталкивался и знает что делать?
 

Вложения

  • HTTP.Transport.Error.txt
    3,3 КБ · Просмотры: 439

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
HTTP transport error: java.lang.UnsupportedOperationException:
с подобной херней я сталкивался при SSL Лохматая jvm и проблемы

Кто знает как лечить или сталкивался и знает что делать?
ну если клиент без севера не используется - запускать на сервере, резалт получать в клиента
 
Последнее редактирование модератором:

garrick

Lotus Team
26.10.2009
1 352
151
BIT
201
Он говорит, что какого-то метода нет в вашей JVM. Можно по номерам строк в StackTrace узнать имя метода и попробовать "портировать" его из более новой JVM или заменить функционал какой-нибудь Appache библиотекой. Какой у вас клиент? Какая JVM? На 10-м или 9-м с последним фикс-паком клиенте не пробовали?
 

savl

Lotus Team
28.10.2011
2 599
311
BIT
192
Он говорит, что какого-то метода нет в вашей JVM. Можно по номерам строк в StackTrace узнать имя метода и попробовать "портировать" его из более новой JVM или заменить функционал какой-нибудь Appache библиотекой. Какой у вас клиент? Какая JVM? На 10-м или 9-м с последним фикс-паком клиенте не пробовали?
Клиент 901FP8, сервер 901FP4
последний не пробовали, так как не используем, пока, на продуктиве.
судя по всему серверная jvmb клиентская jvm весьма разные.
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
201
Найдите конкретно что ему не нравится, в Java всегда есть альтернативы.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
судя по всему серверная jvmb клиентская jvm весьма разные.
это справедливо..., т.к. на клиенте их м.б. 2-е (с опред. фикспака)
посмотреть очень просто - запустив команду java -version с консоли, из каталога с доминошной/нотусевой jvm
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
Он говорит, что какого-то метода нет в вашей JVM
мне так и говориля на SSL ;)
какой-нибудь Appache библиотекой
их либы правильнее ставить в jvm/lib/ext ...., в эклисовых внутренностях есть http клиент (3-ий по-моему) - можно оттуда поцепить
из eclipse все ок срабатывает
если туда нотусёвую jvm прописать?
 

savl

Lotus Team
28.10.2011
2 599
311
BIT
192
правильнее ставить в jvm/lib/ext
да можно в любое место, если в notes.ini прописывать.
если туда нотусёвую jvm прописать?
ну так плагин так и делает.
1569489990000.png

мне так и говориля на SSL
В другом случае когда было, я попробовал сделать HTTPConnection, вот тогда заругался именно на SSL, что нет сертификата.
Это я обошел. В текущем я так не могу сделать.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
да можно в любое место, если в notes.ini прописывать.
разницы не будет по действиям (типа выключить нотус, прописать, запустить нотус), а вот по секьюрити - не помню, для для /jvm/lb/ext - можно все ;)
по хттп - строка at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:132) намекает на то, что ответ от сервера клиент не понимает на уровне протокола
можешь зацепить либу от апачевского клиента (искать в нотусне, в части эклипса)
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
@savl кста получить настройки среды в нотусне можно из Java Debug Console
нажать "p", у мя 10.0.1 светит так:
-- listing properties --
java.vendor=IBM Corporation
package.restrict.access.lotus.domino=true
jempower.libname=njemp
appletviewer.security.domain.secure.mode=domain
os.name=Windows 7
sun.boot.class.path=C:\Program Files (x86)\IBM\Notes\jvm\...
browser.applet=true
path.separator.applet=true
sun.desktop=windows
java.vm.specification.vendor=Oracle Corporation
package.restrict.definition.lotus.domino=true
java.runtime.version=8.0.5.21 - pwi3280sr5fp21-20180830_01...
firewallSet=false
appletviewer.security.domain.notes.mode=unrestricted
java.version.applet=true
user.name=user1
java.compiler=j9jit29
netscape.jsj.dll.applet=true
os.encoding=UTF8
proxySet=false
com.ibm.util.extralibs.properties=
com.ibm.jcl.checkClassPath=
os.name.applet=true
browser.version=5.0
user.language=ru
com.ibm.oti.vm.bootstrap.library.path=C:\Program Files (x86)\IBM\Notes\jvm\...
sun.boot.library.path=C:\Program Files (x86)\IBM\Notes\jvm\...
java.version=1.8.0_181
user.timezone=GMT+03:00
com.ibm.system.agent.path=C:\Program Files (x86)\IBM\Notes\jvm\bin
sun.arch.data.model=32
com.ibm.zero.version=2
java.endorsed.dirs=C:\Program Files (x86)\IBM\Notes\jvm\...
com.ibm.oti.vm.library.version=29
sun.jnu.encoding=Cp1251
file.encoding.pkg=sun.io
file.separator=\
java.specification.name=Java Platform API Specification
java.class.version=52.0
line.separator.applet=true
user.country=RU
java.home=C:\Program Files (x86)\IBM\Notes\jvm
netscape.jsj.dll=js32
java.vm.info=JRE 1.8.0 Windows 7 x86-32-Bit 201808...
os.version=6.1
package.restrict.access.lotus.notes=true
appletviewer.security.domain.secure.addresses=
appletviewer.security.mode=host
browser.version.applet=true
java.awt.fonts=
path.separator=;
java.vm.version=2.9
user.variant=
java.protocol.handler.pkgs=COM.ibm.JEmpower.applet
sun.awt.enableExtraMouseButtons=true
java.awt.printerjob=sun.awt.windows.WPrinterJob
notes.binary=C:\Program Files (x86)\IBM\Notes
sun.io.unicode.encoding=UnicodeLittle
awt.toolkit=sun.awt.windows.WToolkit
ibm.signalhandling.sigint=true
http.agent=JDK/1.0.2
package.restrict.definition.sun=true
java.class.version.applet=true
file.separator.applet=true
user.home=C:\Users\user1
com.ibm.cpu.endian=little
java.specification.vendor=Oracle Corporation
ibm.signalhandling.sigchain=true
java.library.path=C:\Program Files (x86)\IBM\Notes\jvm\...
java.vendor.url=
java.vm.vendor=IBM Corporation
java.fullversion=8.0.5.21 - pwi3280sr5fp21-20180830_01...
java.runtime.name=Java(TM) SE Runtime Environment
java.class.path=.
java.vendor.applet=true
java.vendor.url.applet=true
jemp.basedir=C:\Program Files (x86)\IBM\Notes\
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.version=1.8
sun.cpu.endian=little
package.restrict.definition.java=true
java.io.tmpdir=C:\Users\user1\AppData\Local\Temp\
ibm.system.encoding=Cp1251
notes.init.jvm1=
os.arch=x86
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
ibm.signalhandling.rs=true
java.ext.dirs=C:\Program Files (x86)\IBM\Notes\jvm\...
os.version.applet=true
user.dir=C:\Program Files (x86)\IBM\Notes
os.arch.applet=true
browser=Lotus Notes
browser.vendor.applet=true
line.separator=

java.vm.name=IBM J9 VM
java.net.useSystemProxies=true
com.ibm.oti.shared.enabled=false
com.ibm.vm.bitmode=32
appletviewer.security.protocols=http
https
notes
package.restrict.definition.lotus.notes=true
file.encoding=Cp1251
browser.vendor=Lotus Development
java.specification.version=1.8
com.ibm.oti.configuration=scar
appletviewer.security.domains=secure
jemp.stringfile=C:\Program Files (x86)\IBM\Notes\jemp...
и что меня бесит - это cp1251 в некоторых параметрах, из-за чего нужно думать о возврате UTF-8 в нотусятину
 

savl

Lotus Team
28.10.2011
2 599
311
BIT
192
@savl кста получить настройки среды в нотусне можно из Java Debug Console
нажать "p", у мя 10.0.1 светит так:и что меня бесит - это cp1251 в некоторых параметрах, из-за чего нужно думать о возврате UTF-8 в нотусятину
Да не сильно отличается, у меня 901FP8, мелочи.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
тута просматривал блог и вот
и умя возникло стойкое воспоминание - я натыкался на подобное и в 9.0.1 фиксы не вспомню
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!