Enable Authentication in the Monitoring Interface of the Web Container¶
By default, the monitoring interface - Java Management Extensions (JMX) - of the Denodo web container (Apache Tomcat)
does not require authentication to connect to it. Note that by default,
only applications that run in the same host as the Denodo server can connect to this interface.
That is because the value of the property
com.denodo.tomcat.jmx.rmi.host
in
<DENODO_HOME>/resources/apache-tomcat/conf/tomcat.properties
is
localhost
by default so only connections from that host are allowed.
This explanation also applies to the installation of the Solution Manager.
Consider enabling authentication in the monitoring interface of the web container, even though only local connections can connect. To do this, follow these steps:
Stop all the components of this installation (Virtual DataPort, Data Catalog, etc.)
Execute the script
<DENODO_HOME>/bin/webcontainer_shutdown
.This script ensures the web container is stopped. If for example, you leave the Data Catalog started, the web container will not shut down and the changes in the file
tomcat.properties
will not take effect.Edit the file
<DENODO_HOME>/resources/apache-tomcat/conf/tomcat.properties
and set the propertycom.denodo.tomcat.jmx.auth.enabled
totrue
.Edit the file
<DENODO_HOME>/resources/apache-tomcat/conf/jmxremote.access
(this is the value of the propertycom.denodo.tomcat.jmx.auth.access.file
).Make sure this file contains at least one line for the role
controlRole
with thereadwrite
access level. That is, at least one line of this file is like this:controlRole readwrite
Any other role definitions are optional. See https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html for details on JMX access files.
Edit the file
<DENODO_HOME>/resources/apache-tomcat/conf/jmxremote.password
(this is the value of the propertycom.denodo.tomcat.jmx.auth.password.file
).In this file, the line that starts with
controlRole
contains the password of that user.So, if the line is like this:
controlRole denodojmx
The default password is “denodojmx”. That means that, for a monitoring application that wants to monitor the web container, the user name is
controlRole
and the passworddenodojmx
.To change the password, replace “denodojmx” with the desired password.
This file must contain an entry for all the roles defined in the file “jmxremote.access”. See https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html for details on JMX password files.
Change the privileges of the file
<DENODO_HOME>/resources/apache-tomcat/conf/jmxremote.password
so it can only be read by the same user account that starts the Denodo servers.To do this, execute these commands:
On Linux, run the following from the user account that starts the Denodo servers:
chmod 600 <DENODO_HOME>/resources/apache-tomcat/conf/jmxremote.password
On Windows, right-click the icon Command Prompt of the Windows menu and click Run as administrator.
In this prompt, run the following commands (replace
<denodo_user>
with the user account with which the Denodo servers are started):
cd <DENODO_HOME>\resources\apache-tomcat\conf\ icacls jmxremote.password /setowner <denodo_user> icacls jmxremote.password /grant <denodo_user>:F icacls jmxremote.password /inheritance:r