Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Wildfly sockets / 25 сообщений из 30, страница 1 из 2
30.11.2020, 18:05
    #40023441
Als1973
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
В WAR для Wildfly простая операция по закрытию TCP сокета (this.socket.close();) культурно, без ошибок кладет сам сервер. Может кто сталкивался?
...
Рейтинг: 0 / 0
30.11.2020, 18:57
    #40023457
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Als1973,
Ниче не понял.
war это архив файлов. Где там операция?
...
Рейтинг: 0 / 0
01.12.2020, 09:59
    #40023539
Als1973
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
PetroNotC Sharp,

Да, веб приложение, в котором нужно открыть сокет на внешнее устройство и закрыть. Открывается нормально, отрабатывает что надо, при закрытии шадаунится сам wildfly.
...
Рейтинг: 0 / 0
01.12.2020, 10:41
    #40023548
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Als1973,
Минимальный код сюда.
Типо - новый проект, ставим две строки и тут упало.
Пошаговая отладка, логи, анализы))))
...
Рейтинг: 0 / 0
01.12.2020, 10:55
    #40023554
Als1973
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
PetroNotC Sharp,

Все что после socket.close();

2020-12-01 09:50:22,158 INFO [org.jboss.as.server] (Thread-1) WFLYSRV0272: Suspending server
2020-12-01 09:50:22,178 INFO [org.jboss.as.ejb3] (Thread-1) WFLYEJB0493: EJB subsystem suspension complete
2020-12-01 09:50:22,184 INFO [org.jboss.as.server] (Thread-1) WFLYSRV0220: Server shutdown has been requested via an OS signal

Далее глушатся приложения.
Где-то проскакивало что сокеты нужно открывать в отдельном треде, но примера так и не нашел.
...
Рейтинг: 0 / 0
01.12.2020, 11:17
    #40023559
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Als1973
Где-то проскакивало что сокеты нужно открывать в отдельном треде, но примера так и не нашел.

- по уму JavaEE приложение может открывать сокеты и прочие непотребства в JCA-адаптере (на GitHub таких проектов полно, вот например ), но даже если и не "по уму", то открытие/закрытие сетевого соединения не должно крашить WildFly. Возможно Вы закрываете что-то не то
...
Рейтинг: 0 / 0
01.12.2020, 12:27
    #40023593
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Als1973
Все что после socket.close();
ну а остальное где?
...
Рейтинг: 0 / 0
01.12.2020, 12:50
    #40023605
Als1973
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
PetroNotC Sharp,
Что остальное?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
    public void connect() {
        log.debug("Opening socket for HSM");
        try {
            log.debug("HSM configured: " + HSMIP + ":" + HSMPort);
           this.socket = new Socket(HSMIP, HSMPort);
           socket.setTrafficClass(16);
           
        } catch (IOException e) {
            log.error("Unable to open socket: " + e.getMessage(), e);
            return;
        }
        sendEcho();
        log.debug("Socket opened");
    }

    public void disconnect() {
        log.debug("Closing socket");
       try {
           this.socket.close();
        } catch (IOException e) {
           log.error("Failed to close socket: " + e.getMessage(), e);
       }
    }



connect connect() - отрабатывать, sendEcho() - отрабатывает, disconnect() - даунит сервер
...
Рейтинг: 0 / 0
01.12.2020, 13:42
    #40023621
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Als1973,
Код: java
1.
2.
3.
} catch (IOException e) {
    log.error("Failed to close socket: " + e.getMessage(), e);
}


- перехватывате не IOException, а Throwable. Поставьте на это место брекпойнт и в дебагере посмотрите что за исключение происходит (ну или e.printStackTrace() сделайте). Тогда понятней станет что там происходит и нам расскажете)
...
Рейтинг: 0 / 0
01.12.2020, 13:43
    #40023622
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Als1973, ну и не плохо бы сказать что там в "HSMIP + ":" + HSMPort"
...
Рейтинг: 0 / 0
01.12.2020, 13:48
    #40023625
Als1973
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Kachalov,
Так ексепшена нет вообще.
IP и порт, все прекрасно коннектится к ХСМ и отрабатывает, убивает close()
...
Рейтинг: 0 / 0
01.12.2020, 14:09
    #40023634
Als1973
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Все, вопрос снимается, я лох. Нашел ошибку, переношу чужое консольное приложение на cервер, а там exit(1)
...
Рейтинг: 0 / 0
01.12.2020, 17:09
    #40023711
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Exit - это опасная штука. Особенно если она может быть вызывана косвенно из динамического кода.
Из скриптовых языков Java/Nashorn.

Кстати ее можно зобанить из Java Security Manager?
...
Рейтинг: 0 / 0
01.12.2020, 17:45
    #40023718
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
mayton
Кстати ее можно зобанить из Java Security Manager?

- да, но если начать банить все опасные штуки, то неожиданно окажется что половина популярных у Java-разработчиков фреймворков не работают
...
Рейтинг: 0 / 0
01.12.2020, 17:47
    #40023719
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Им может внезапно понадобиться System.exit() ?
...
Рейтинг: 0 / 0
01.12.2020, 18:28
    #40023729
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
mayton
Им может внезапно понадобиться System.exit() ?

- нет, но необходимость доступа к System это не редкость: например System.getProperties() довольно популярен у разработчиков фреймворков
...
Рейтинг: 0 / 0
01.12.2020, 18:49
    #40023732
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Я-же не предлагаю зобанить класс System. Там для каждого system property есть отдельная привилегия.

Но конфигурить Security Manager через текстовые файлы в дефолтном варианте - это гиморр.
Я согласен. Он работает в режиме "Запрещено все что не разрешено" и пока приложение
не пройдет все цикломатические ветки и кейсы - невозможно гарантировать что serutity.properties
написан настолько деликатно чтоб не крашить приложение.

Вобщем я вижу решение в виде написание своего SecurityManager.
...
Рейтинг: 0 / 0
01.12.2020, 20:16
    #40023756
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
mayton
Я-же не предлагаю зобанить класс System. Там для каждого system property есть отдельная привилегия

- я реальный пример взял
Kachalov
System.getProperties()

- это через PropertyPermission не порешаешь

mayton
Вобщем я вижу решение в виде написание своего SecurityManager.

- вряд ли это будет проще чем уже существующий, разве что правила можно в какой-нибудь модный YAML запихнуть
...
Рейтинг: 0 / 0
01.12.2020, 20:36
    #40023766
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Kachalov
- я реальный пример взял
Код: plaintext
1.
> findstr -v ^^# java.security|findstr -v ^^$|findstr System
policy.allowSystemProperty=true
Может ещё и на реальное состояние вещей обращать внимание?
...
Рейтинг: 0 / 0
01.12.2020, 20:51
    #40023769
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Basil A. Sidorov

policy.allowSystemProperty=true
Может ещё и на реальное состояние вещей обращать внимание?

- не понял что Вы хотели сказать, поясните. Если это про System.getProperties() , то там SecurityException - if a security manager exists and its checkPropertiesAccess method doesn't allow access to the system properties
...
Рейтинг: 0 / 0
01.12.2020, 21:12
    #40023772
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Не знаю зачем вы ссылаетесь на восьмерку. Надо смотреть в перспективу.
Ну вот для транковой версии OpenJDK.

System.exit вызывает Runtime.exit:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
    76      /**
    77       * Terminates the currently running Java virtual machine by initiating its
    78       * shutdown sequence.  This method never returns normally.  The argument
    79       * serves as a status code; by convention, a nonzero status code indicates
    80       * abnormal termination.
    81       *
    82       * <p> All registered {@linkplain #addShutdownHook shutdown hooks}, if any,
    83       * are started in some unspecified order and allowed to run concurrently
    84       * until they finish.  Once this is done the virtual machine
    85       * {@linkplain #halt halts}.
    86       *
    87       * <p> If this method is invoked after all shutdown hooks have already
    88       * been run and the status is nonzero then this method halts the
    89       * virtual machine with the given status code. Otherwise, this method
    90       * blocks indefinitely.
    91       *
    92       * <p> The {@link System#exit(int) System.exit} method is the
    93       * conventional and convenient means of invoking this method.
    94       *
    95       * @param  status
    96       *         Termination status.  By convention, a nonzero status code
    97       *         indicates abnormal termination.
    98       *
    99       * @throws SecurityException
   100       *         If a security manager is present and its
   101       *         {@link SecurityManager#checkExit checkExit} method does not permit
   102       *         exiting with the specified status
   103       *
   104       * @see java.lang.SecurityException
   105       * @see java.lang.SecurityManager#checkExit(int)
   106       * @see #addShutdownHook
   107       * @see #removeShutdownHook
   108       * @see #halt(int)
   109       */
   110      public void exit(int status) {
   111          SecurityManager security = System.getSecurityManager();
   112          if (security != null) {
   113              security.checkExit(status);
   114          }
   115          Shutdown.exit(status);
   116      }



Формально проверка есть. Осталось ее активировать.
...
Рейтинг: 0 / 0
01.12.2020, 21:14
    #40023773
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Kachalov

mayton
Вобщем я вижу решение в виде написание своего SecurityManager.

- вряд ли это будет проще чем уже существующий, разве что правила можно в какой-нибудь модный YAML запихнуть

При чем здесь Yaml?

Я вообеще это имел в виду. Я хотел "разрешить всё" но явно запретить одно конкретное действие.
Стандарным конфигуратором на основе .property это сделать сложно.
...
Рейтинг: 0 / 0
01.12.2020, 21:31
    #40023779
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
mayton
Не знаю зачем вы ссылаетесь на восьмерку

- я про getProperties говорил, а 8 просто под руку подвернулась
...
Рейтинг: 0 / 0
01.12.2020, 21:33
    #40023781
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Проехали про getProperties.
...
Рейтинг: 0 / 0
02.12.2020, 06:50
    #40023835
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wildfly sockets
Kachalov
- не понял что Вы хотели сказать, поясните.
Я взял умалчиваемую политику Java 8 и, внезапно, "начал подозревать", что политика по умолчанию разрешает доступ к системным свойствам.
"Меня опять терзают смутные сомнения", что если активировать диспетчер безопасности, то System.getProperties() будет работать без всяких проблем: проверка обнаружит, что "это можно".
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Wildfly sockets / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]