«1. Введение

WildFly предлагает различные подходы к администрированию сервера. Наиболее привычный подход — использовать его веб-интерфейс, но мы можем использовать сценарии CLI или XML.

В этом руководстве мы сосредоточимся на доступе к веб-интерфейсу администрирования.

Мы предполагаем, что читатели уже понимают стандартный процесс установки WildFly.

2. Удаленный доступ

Веб-интерфейс или консоль — это приложение GWT, которое использует API управления HTTP WildFly для настройки автономного или управляемого доменом сервера. Этот API обслуживает два разных контекста:

    Веб-интерфейс: http://\u003chost\u003e:9990/console Операции управления: http://\u003chost\u003e:9990/management

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

На жаргоне WildFly интерфейс состоит из сетевого интерфейса с критериями выбора. В большинстве случаев критерием выбора является IP-адрес, привязанный к интерфейсу. Локальный интерфейс объявлен следующим образом:

<interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<!--127.0.0.1 is the localhost IP address. -->

В результате этот локальный интерфейс управления подключен к прослушивателю сокетов management-http, принимающему соединения для веб-консоли с порта 9000:

<socket-binding-group name="standard-sockets" default-interface="public" 
  port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="management-http" interface="management" 
      port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" 
      port="${jboss.management.https.port:9993}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
       <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

Чтобы разрешить доступ с удаленного машине, нам сначала нужно создать интерфейс удаленного управления в соответствующем файле конфигурации. Если мы настраиваем автономный сервер, мы изменим standalone/configuration/standalone.xml, а для управляемого доменом изменим domain/configuration/host.xml:

<interface name="remoteManagement">
    <inet-address value="${jboss.bind.address.management:REMOTE_HOST_IP}"/> 
</interface> 
<!--REMOTE_HOST_IP is the remote host IP address. (e.g 192.168.1.2) -->

Мы также должны изменить привязка сокета management-http для удаления предыдущего локального интерфейса и добавления нового:

<socket-binding-group name="standard-sockets" default-interface="public" 
  port-offset="${jboss.socket.binding.port-offset:0}">
    <!-- same as before -->
    <socket-binding name="management-http" interface="remoteManagement" 
      port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="remoteManagement" 
      port="${jboss.management.https.port:9993}"/>
    <!-- same as before -->
</socket-binding-group>

В приведенной выше конфигурации мы привязываем новый интерфейс remoteManagement к нашим портам HTTP (9990) и HTTPS (9993). Это позволит IP-адресу удаленного хоста подключаться к веб-интерфейсу через порты HTTP/HTTPS.

3. Аутентификация

WildFly по умолчанию защищает все удаленные соединения. Механизм безопасности по умолчанию — это имя пользователя/пароль через дайджест-аутентификацию HTTP.

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

Для создания пользователей WildFly предоставляет интерактивный скрипт add-user.sh (add-user.bat на платформах Windows), состоящий из нескольких шагов:

  1. Type of user: Either management or application user
  2. Realm: The realm name used in the configuration, which is ManagementRealm by default
  3. Username: The new user’s username
  4. Password: The new user’s password
  5. Slave domain controller: A flag indicating whether the user will control slave domains processes in a distributed-domains architecture; it defaults to No

Также можно добавлять пользователей неинтерактивным способом, сделав использование того же скрипта и указание ввода в качестве параметров:

$ ./add-user.sh -u 'adminuser1' -p 'password1!'

добавляет управляющего пользователя «adminuser1» с паролем «password1!» в область по умолчанию.

4. Заключение

В этом кратком руководстве мы рассмотрели, как настроить WildFly, чтобы разрешить удаленный доступ к веб-консоли управления сервером. Кроме того, мы также увидели, как мы можем создавать пользователей, используя предоставленные WildFly скрипты.