Remoting WildFly Subsystem Concepts

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

EAP 7 Note

In EAP 7, the default remoting connector has changed from "remote" to "http-remoting" and the default remote connection port has changed from 4447 to 8080.

The JNDI provider URL for the default configuration has changed from remote://localhost:4447 to http-remoting://localhost:8080.

JNDI and Remoting

See

JNDI and Remoting

Remoting and the Management Interfaces

EAP 6

TODO: clarify the relationship between the remoting subsystem and the instance's management interfaces. When booting an EAP 6 instance, we get:

org.jboss.as.remoting] (MSC service thread 1-5) JBAS017100: Listening on 127.0.0.1:9999

which indicates that the management interface (9999) and remoting are related.


EAP 7

Remoting and JMX Access

JBoss Remoting provides the transport of the JSR-160 Java Management Extensions (JMX) Remote API compliant implementation of a JMXConnector that can be used by standard monitoring applications (such as VisualVM) to access the JMX bus. This is why JBoss Remoting configuration and security is relevant when an external JMX client needs access to JBoss.

For practical details on how various JMX clients can connect to WildFly instances, see:

WildFly and JMX

Security

Remoting connection attempts are authenticated against a configurable set of authentication mechanisms.

The presence of the 'security-realm' attribute in the remoting connector configuration triggers authentication enforcement within the remoting service, by initializing the list of authentication mechanisms to those contributed by the security realm.

For EAP 6:

<subsystem xmlns="urn:jboss:domain:remoting:1.1">
   <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/>
</subsystem>

For EAP 7:

TODO

The "ApplicationRealm" security realm employs "DIGEST" and "LOCAL" security mechanisms.

For more details on the local authentication mechanism see the local file-based authentication mechanism.

Removing 'security-realm="ApplicationRealm"' from the remoting connector configuration ends up in the installation of the "ANONYMOUS" authentication mechanism, which enforces no authentication.

For more details on configuring security-realm see security-realm.

For more on JBoss 7 security, see WildFly Security Realms.

JBoss Remoting Client-Side Programmatic Login

In order to initiated a username/password authentication on the server, set the following environment before initiating the remoting connection:

"jmx.remote.credentials" (javax.management.remote.JMXConnector.CREDENTIALS) with a String[2], containing on the first position the username and on the second the password.


More details about the digest mechanism used by JBoss on the server can be found in JBoss Authentication Digest Mechanism.

Threading Model

All invocations arriving on the subsystem's connectors are handled by the subsystem's threads, which are all grouped under the worker thread pool. Various worker thread pool attributes are configured on the worker-thread-pool element. For more details on configuring the thread pool, see:

<worker-thread-pool> Configuration

Also see:

WildFly Threads Subsystem Concepts