이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 3. Configuration of HawtIO


HawtIO consists of two main components: The server runtime and client console.

The server runtime is the Java backend that runs on the server side, and the client console is the JavaScript frontend that is deployed and runs on the browser.

Therefore, two types of configuration are provided for HawtIO:

HawtIO and its plugins can configure their behaviours through System properties.

  1. Configuration properties - The server runtime configuration
  2. hawtconfig.json - The client console configuration

3.1. Configuration properties

The HawtIO server runtime and its plugins can configure their behaviours through System properties.

The following table lists the configuration properties for the HawtIO core system and various plugins.

Note

For the configuration properties related to security and authentication, refer to Security.

Expand
SystemDefaultDescription

hawtio.disableProxy

false

With this property set to true, ProxyServlet (/hawtio/proxy/*) can be disabled. This makes the Connect plugin unavailable, which means HawtIO can no longer connect to remote JVMs, but sometimes users might want to do so because of security if the Connect plugin is not used.

hawtio.localAddressProbing

true

Whether local address probing for proxy allowlist is enabled or not upon startup. Set this property to false to disable it.

hawtio.proxyAllowlist

localhost, 127.0.0.1

Comma-separated allowlist for target hosts that Connect plugin can connect to via ProxyServlet. All hosts not listed in this allowlist are denied to connect for security reasons. This option can be set to * to allow all hosts. Prefixing an element of the list with "r:" allows to define a regex (example: localhost,r:myserver[0-9]+.mydomain.com)

hawtio.redirect.scheme

 

The scheme is to redirect the URL to the login page when authentication is required.

hawtio.sessionTimeout

 

The maximum time interval, in seconds, that the servlet container will keep this session open between client accesses. If this option is not configured, then HawtIO uses the default session timeout of the servlet container.

3.2. Quarkus

For Quarkus, all those properties are configurable in application.properties or application.yaml with the quarkus.hawtio prefix.

For example:

quarkus.hawtio.disableProxy = true
Copy to Clipboard Toggle word wrap

3.3. Spring Boot

For Spring Boot, all those properties are configurable in application.properties or application.yaml as is.

For example:

hawtio.disableProxy = true
Copy to Clipboard Toggle word wrap

3.4. Configuring Jolokia through system properties

The Jolokia agent is deployed automatically with io.hawt.web.JolokiaConfiguredAgentServlet that extends Jolokia native org.jolokia.http.AgentServlet class, defined in hawtio-war/WEB-INF/web.xml.

If you want to customize the Jolokia Servlet with the configuration parameters that are defined in the Jolokia documentation, you can pass them as System properties prefixed with jolokia.

For example:

jolokia.policyLocation = file:///opt/hawtio/my-jolokia-access.xml
Copy to Clipboard Toggle word wrap

3.5. Custom branding configuration of HawtIO

The hawtconfig.json is the entrypoint JSON file for configuring the frontend console of HawtIO. It can be used to customise the various parts of the console: the branding, styles and basic UI parts such as the login page and about modal, as well as the console-specific behaviours of some of the HawtIO plugins.

Here is an example file of hawtconfig.json:

Example hawtconfig.json:

{
  "branding":
  {
    "appName": "HawtIO Management Console",
    "showAppName": false,
    "appLogoUrl": "hawtio-logo.svg",
    "companyLogoUrl": "hawtio-logo.svg",
    "css": "",
    "favicon": "favicon.ico"
  },
  "login": {
    "description": "Login page for HawtIO Management Console.",
    "links": [
      { "url": "#terms", "text": "Terms of Use" },
      { "url": "#help", "text": "Help" },
      { "url": "#privacy", "text": "Privacy Policy" }
    ]
  },
  "about": {
    "title": "HawtIO Management Console",
    "description": "A HawtIO reimplementation based on TypeScript + React.",
    "imgSrc": "hawtio-logo.svg",
    "productInfo": [
      { "name": "ABC", "value": "1.2.3" },
      { "name": "XYZ", "value": "7.8.9" }
    ],
    "copyright": "© HawtIO project"
  },
  "disabledRoutes": [
    "/disabled"
  ]
}
Copy to Clipboard Toggle word wrap

3.5.1. Configuration options in hawtconfig.json

At the top level of hawtconfig.json the following options are currently provided:

Top-level configuration options

Expand
OptionDescriptiom

branding

The branding options for the console.

login

The login page configuration.

about

The about modal configuration.

disabledRoutes

The list of plugins that should be hidden from the console.

jmx

The JMX plugin configuration.

online

The HawtIO Online configuration.

3.5.1.1. Branding

The branding configuration provides the options to customise the console’s branding, such as the application name, logos, styles and favicon.

Branding configuration options

Expand
OptionDefaultDescription

appName

HawtIO Management Console

Customise the application name of the console. The name is used in the browser title header and optionally in the header of the console page.

showAppName

false

Show the application name in the header of the console page.

appLogoUrl

img/hawtio-logo.svg

Use the URL to substitute the application logo.

companyLogoUrl

img/hawtio-logo.svg

Use the URL to substitute the company logo.

css

 

Provide the custom CSS to apply to the console.

favicon

 

Use the URL to substitute the favicon.

Here is how the branding configuration looks in hawtconfig.json:

"branding": {
  "appName": "HawtIO Management Console",
  "showAppName": false,
  "appLogoUrl": "hawtio-logo.svg",
  "companyLogoUrl": "hawtio-logo.svg",
  "css": "",
  "favicon": "favicon.ico"
}
Copy to Clipboard Toggle word wrap

3.5.1.2. Login

The login configuration provides the options to customise the information displayed in the HawtIO login page.

Login configuration options

Expand
OptionDefaultDescription

description

 

Set the text displayed in the login page.

links

[ ]

Provide the links at the bottom of the login page. The value should be an array of objects with url and text properties.

Here is how the login configuration looks in hawtconfig.json:

"login": {
  "description": "Login page for HawtIO Management Console.",
  "links": [
    { "url": "#terms", "text": "Terms of Use" },
    { "url": "#help", "text": "Help" },
    { "url": "#privacy", "text": "Privacy Policy" }
  ]
}
Copy to Clipboard Toggle word wrap

3.5.1.3. About

The about configuration provides the options to customise the information displayed in the HawtIO About modal.

About configuration options

Expand
OptionDefaultDescription

title

HawtIO Management Console

Customise the title of the About modal.

description

 

Provide the description text to the About modal.

imgSrc

img/hawtio-logo.svg

Use the URL to substitute the logo image in the About modal.

productInfo

[ ]

Provide the information of names and versions about the additional components used in the console. The value should be an array of objects with name and value properties.

copyright

 

Set the copyright information in the About modal.

Here is how the about configuration looks in hawtconfig.json:

"about":
{
  "title": "HawtIO Management Console",
  "description": "A HawtIO reimplementation based on TypeScript + React.",
  "imgSrc": "hawtio-logo.svg",
  "productInfo": [
    { "name": "ABC", "value": "1.2.3" },
    { "name": "XYZ", "value": "7.8.9" }
  ],
  "copyright": "© HawtIO project"
}
Copy to Clipboard Toggle word wrap

3.5.1.4. Disabled routes

The disabledRoutes configuration provides the option to hide the plugins from the console.

The value of the option should be an array of strings that represent the paths of the plugins that should be hidden.

Here is how the disabledRoutes configuration looks in hawtconfig.json:

"disabledRoutes": [
  "/disabled"
]
Copy to Clipboard Toggle word wrap

3.5.1.5. JMX plugin

The JMX plugin is customisable via the jmx configuration in hawtconfig.json.

Tip

By default HawtIO loads all MBeans into the workspace via the JMX plugin. Sometimes your custom HawtIO console might want to load only a portion of MBeans to reduce the load on the application. The jmx configuration provides an option to limit the MBeans to be loaded into the workspace.

JMX plugin configuration options

Expand
OptionDefaultDescription

workspace

 

Specify the list of MBean domains and object names that should be loaded to the JMX plugin workspace.

This option can either disable workspace completely by setting false, or specify an array of MBean paths in the form of:

<domain>/<prop1>=<value1>,<prop2>=<value2>,...
Copy to Clipboard Toggle word wrap

to fine-tune which MBeans to load into workspace.

Warning

Disabling workspace should also deactivate all the plugins that depend on MBeans provided by workspace.

Here is how the jmx configuration looks in hawtconfig.json:

"jmx": {
  "workspace": [
    "hawtio",
    "java.lang/type=Memory",
    "org.apache.camel",
    "no.such.domain"
  ]
}
Copy to Clipboard Toggle word wrap

3.5.1.6. HawtIO Online

The frontend aspects of HawtIO Online can be configured via the online configuration in hawtconfig.json.

HawtIO Online configuration options

Expand
OptionDefaultDescription

projectSelector

 

Set the selector used to watch for projects. It is only applicable when the HawtIO deployment type is equal to cluster. By default, all the projects the logged in user has access to are watched. The string representation of the selector must be provided, as mandated by the --selector, or -l, options from the kubectl get command. See here.

consoleLink

 

Configure the OpenShift Web console link. A link is added to the application menu when the HawtIO deployment is equal to cluster. Otherwise, a link is added to the HawtIO project dashboard. The value should be an object with the following properties: text, section, and imageRelativePath.

ConsoleLink configuration options

Expand
OptionDefaultDescription

text

 

Set the text display for the link.

section

 

Set the section of the application menu in which the link should appear. It is only applicable when the HawtIO deployment type is equal to cluster.

imageRelativePath

 

Set the path, relative to the HawtIO status URL, for the icon used in front of the link in the application menu. It is only applicable when the HawtIO deployment type is equal to cluster. The image should be square and will be shown at 24x24 pixels.

Here is how the HawtIO online configuration looks in hawtconfig.json:

"online": {
  "projectSelector": "myproject",
  "consoleLink": {
      "text": "HawtIO Management Console",
      "section": "HawtIO",
      "imageRelativePath": "/online/img/favicon.ico"
  }
}
Copy to Clipboard Toggle word wrap

3.5.2. Deploying hawtconfig.json

3.5.2.1. Quarkus

For a Quarkus application, the hawtconfig.json file, as well as the other companion static resources such as CSS files and images, should be placed under META-INF/resources/hawtio in the src/main/resources directory of the project.

You can find an example Quarkus project here.

3.5.2.2. Spring Boot

For a Spring Boot application, the hawtconfig.json file, as well as the other companion static resources such as CSS files and images, should be placed under hawtio-static in the src/main/resources directory of the project.

You can find an example Spring Boot project here.

3.5.3. Customising from plugins

While plugins cannot directly provide the hawtconfig.json file itself for the console, they can customise the configuration after the file is loaded from the main console application.

The @hawtio/react NPM package provides the configManager API. You can use this API in the plugin’s index.ts to customise the configuration of hawtconfig.json during the loading of the plugin.

Here is an example of how you can customise the hawtconfig.json configuration from a plugin:

import
{
  HawtIOPlugin, configManager
  } from '@hawtio/react'
...

/**
 * The entry function of your plugin.
 */
export const plugin: HawtIOPlugin = () =>
{
  ...
}

// Register the custom plugin version to HawtIO
// See package.json "replace-version" script for how to replace the version placeholder with a real version
configManager.addProductInfo('HawtIO Sample Plugin', '__PACKAGE_VERSION_PLACEHOLDER__')

/*
 * This example also demonstrates how branding and styles can be customised from a WAR plugin.
 *
 * The Plugin API `configManager` provides `configure(configurer: (config: Hawtconfig) => void)` method
 * and you can customise the `Hawtconfig` by invoking it from the plugin's `index.ts`.
 */
configManager.configure(config => {
  // Branding & styles
  config.branding =
  {
    appName: 'HawtIO Sample WAR Plugin',
    showAppName: true,
    appLogoUrl: '/sample-plugin/branding/Logo-RedHat-A-Reverse-RGB.png',
    css: '/sample-plugin/branding/app.css',
    favicon: '/sample-plugin/branding/favicon.ico',
  }
  // Login page
  config.login = {
    description: 'Login page for HawtIO Sample WAR Plugin application.',
    links: [
      { url: '#terms', text: 'Terms of use' },
      { url: '#help', text: 'Help' },
      { url: '#privacy', text: 'Privacy policy' },
    ],
  }
  // About modal
  if (!config.about) {
    config.about = {}
  }
  config.about.title = 'HawtIO Sample WAR Plugin'
  config.about.description = 'About page for HawtIO Sample WAR Plugin application.'
  config.about.imgSrc = '/sample-plugin/branding/Logo-RedHat-A-Reverse-RGB.png'
  if (!config.about.productInfo) {
    config.about.productInfo = []
  }
  config.about.productInfo.push(
    { name: 'HawtIO Sample Plugin - simple-plugin', value: '1.0.0' },
    { name: 'HawtIO Sample Plugin - custom-tree', value: '1.0.0' },
  )
  // If you want to disable specific plugins, you can specify the paths to disable them.
  //config.disabledRoutes = ['/simple-plugin']
})
Copy to Clipboard Toggle word wrap

You can find an example WAR plugin project here.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동