[wildfly-dev] Redesigning http-upgrade configuration for management

David M. Lloyd david.lloyd at redhat.com
Thu Sep 17 07:38:05 EDT 2015


On 09/17/2015 05:18 AM, Darran Lofthouse wrote:
> On 16/09/15 19:11, Brian Stansberry wrote:
>> For example, I believe http-upgrade is an implementation detail. What
>> the resource is really about is providing JBoss Remoting-based
>> management in an HTTP environment. We refer to that elsewhere as
>> "native" (i.e. in
>> /core-service=management/management-interface=native-interface) So is
>> this resource primarily about native management?
>
> That sounds like where I was starting to come from regarding a new
> design to move this into a subsystem - we actually have a bit of a
> mixture when it comes to defining how different interfaces are exposed.
>
> I was considering that at the top level we have a resource that
> represents the protocol being exposed.
>
> I was then considering attributes to define how it is exposed, from
> subsequent capability related discussions those would probably have to
> be child resources.
>
> In XML terms it would be something like: -
>
> <native-interface sasl-authentication="...">
>       <remoting />
>       <direct socket-binding="..." />
>       <http-upgrade use-http-binding="..." undertow-listener="..." />
> </native-interface>
> <http-interface http-authentication="...">
>       <direct http-socket-binding="..." https-socket-binding="..."/>
>       <undertow-listener name="..." context="/management" />
> </http-interface>
>
> Names chosen were just to illustrate the hierarchy but general principal
> was the parent is what is exposed, the child is how it is exposed.

Assuming that we are still planning following through with moving 
everything into subsystems/enabling HC subsystems like we discussed last 
January, and given cap/req, shouldn't we seriously consider making it 
something more closely approximating this:

<subsystem xmlns="...remoting...">
     <endpoint id="management" name="${jboss.node.name}-management">
         <http-connector name="blah" sasl-authentication="rem-sasl" 
connector-ref="mgmt-connect" .../>
     </endpoint>
</subsystem>
<subsystem xmlns="...network...">
     <interface name="management">
         <inet-address value="127.0.0.1"/>
     </interface>
     <socket-binding-group name="standard-sockets">
         <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}"/>
         ...boring stuff here...
     </socket-binding-group>
</subsystem>
<subsystem xmlns="...sec-elytron...">
     <security-domain name="main-domain">
         <sasl-authentication name="rem-sasl">
             ...boring stuff here...
         </sasl-authentication>
         ...boring realm stuff here...
     </security-domain>
</subsystem>
<subsystem xmlns="...undertow...">
     <server name="mgmt-server">
         <http-listener name="default" socket-binding="management-http" 
.../>
         ...boring stuff here...
     </server>
     ...boring stuff here...
</subsystem>
<subsystem xmlns="...management...">
     <remoting endpoint="management"/>     // this is an attribute, not 
a sub-resource
     <security-domain name="main-domain"/> // this is an attribute, not 
a sub-resource
     ...boring stuff here...
</subsystem>

That said if we're not making the move to subsystems, I guess I don't 
really care how it's all laid out too much, but using cap/req whenever 
possible will make any such future move go more smoothly, IMO.

-- 
- DML


More information about the wildfly-dev mailing list