[jboss-jira] [JBoss JIRA] (WFCORE-4269) Multiple <socket> elements inside an http-interface parsed wrongly

Jörg Bäsner (Jira) issues at jboss.org
Thu Jan 10 05:20:00 EST 2019


     [ https://issues.jboss.org/browse/WFCORE-4269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jörg Bäsner updated WFCORE-4269:
--------------------------------
    Description: 
The definition of the _http-interface_ for the _management-interface_ in the {{wildfly-config_5_0.xsd}} is defined as:

{code}
    <xs:complexType name="host-http-management-interfaceType">
        <xs:annotation>
            <xs:documentation>
                Configuration of a host's exposed HTTP management interface.
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="http-management-interfaceType">
                <xs:sequence>
                    <xs:element name="socket" type="host-http-management-socketType"/>
                </xs:sequence>
                <xs:attribute name="console-enabled" type="xs:boolean" use="optional" default="true"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
{code}

Where _xs:sequence_ has a default definition of:
* *maxOccurs* _Optional._ Specifies the maximum number of times the sequence element can occur in the parent element. The value can be any number >= 0, or if you want to set no limit on the maximum number, use the value "unbounded". Default value is 1
* *minOccurs* _Optional._ Specifies the minimum number of times the sequence element can occur in the parent element. The value can be any number >= 0. Default value is 1

But the parser allows to configure multiple sockets like this:

{code}
            ...
            <security-realm name="ManagementRealm">
                <server-identities>
                    <ssl>
                        <keystore path="server.keystore" relative-to="jboss.domain.config.dir" keystore-password="******" alias="server"/>
                    </ssl>
                </server-identities>
                <authentication>
                    <properties path="mgmt-users.properties" relative-to="jboss.domain.config.dir"/>
                </authentication>
            </security-realm>
            ...
            <http-interface security-realm="ManagementRealm">
                <http-upgrade enabled="true"/>
                <socket interface="local" port="${jboss.management.local.http.port:9990}"/>
                <socket interface="management" secure-port="${jboss.management.https.port:9443}"/>
            </http-interface>
    ...
    <interfaces>
        <interface name="local">
            <inet-address value="${jboss.bind.address.local.management:127.0.0.1}"/>
        </interface>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:jbaesner.remote.csb}"/>
        </interface>
    </interfaces>
    ...
{code}

  was:
The definition of the _http-interface_ for the _management-interface_ in the wildfly-config_5_0.xsd is defined as:

{code}
    <xs:complexType name="host-http-management-interfaceType">
        <xs:annotation>
            <xs:documentation>
                Configuration of a host's exposed HTTP management interface.
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="http-management-interfaceType">
                <xs:sequence>
                    <xs:element name="socket" type="host-http-management-socketType"/>
                </xs:sequence>
                <xs:attribute name="console-enabled" type="xs:boolean" use="optional" default="true"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
{code}

Where _xs:sequence_ has a default definition of:
* *maxOccurs* _Optional._ Specifies the maximum number of times the sequence element can occur in the parent element. The value can be any number >= 0, or if you want to set no limit on the maximum number, use the value "unbounded". Default value is 1
* *minOccurs* _Optional._ Specifies the minimum number of times the sequence element can occur in the parent element. The value can be any number >= 0. Default value is 1

But the parser allows to configure multiple sockets like this:

{code}
            ...
            <security-realm name="ManagementRealm">
                <server-identities>
                    <ssl>
                        <keystore path="server.keystore" relative-to="jboss.domain.config.dir" keystore-password="******" alias="server"/>
                    </ssl>
                </server-identities>
                <authentication>
                    <properties path="mgmt-users.properties" relative-to="jboss.domain.config.dir"/>
                </authentication>
            </security-realm>
            ...
            <http-interface security-realm="ManagementRealm">
                <http-upgrade enabled="true"/>
                <socket interface="local" port="${jboss.management.local.http.port:9990}"/>
                <socket interface="management" secure-port="${jboss.management.https.port:9443}"/>
            </http-interface>
    ...
    <interfaces>
        <interface name="local">
            <inet-address value="${jboss.bind.address.local.management:127.0.0.1}"/>
        </interface>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:jbaesner.remote.csb}"/>
        </interface>
    </interfaces>
    ...
{code}



> Multiple <socket> elements inside an http-interface parsed wrongly
> ------------------------------------------------------------------
>
>                 Key: WFCORE-4269
>                 URL: https://issues.jboss.org/browse/WFCORE-4269
>             Project: WildFly Core
>          Issue Type: Bug
>          Components: Management
>    Affects Versions: 8.0.0.Beta2
>            Reporter: Jörg Bäsner
>            Assignee: Jeff Mesnil
>            Priority: Major
>
> The definition of the _http-interface_ for the _management-interface_ in the {{wildfly-config_5_0.xsd}} is defined as:
> {code}
>     <xs:complexType name="host-http-management-interfaceType">
>         <xs:annotation>
>             <xs:documentation>
>                 Configuration of a host's exposed HTTP management interface.
>             </xs:documentation>
>         </xs:annotation>
>         <xs:complexContent>
>             <xs:extension base="http-management-interfaceType">
>                 <xs:sequence>
>                     <xs:element name="socket" type="host-http-management-socketType"/>
>                 </xs:sequence>
>                 <xs:attribute name="console-enabled" type="xs:boolean" use="optional" default="true"/>
>             </xs:extension>
>         </xs:complexContent>
>     </xs:complexType>
> {code}
> Where _xs:sequence_ has a default definition of:
> * *maxOccurs* _Optional._ Specifies the maximum number of times the sequence element can occur in the parent element. The value can be any number >= 0, or if you want to set no limit on the maximum number, use the value "unbounded". Default value is 1
> * *minOccurs* _Optional._ Specifies the minimum number of times the sequence element can occur in the parent element. The value can be any number >= 0. Default value is 1
> But the parser allows to configure multiple sockets like this:
> {code}
>             ...
>             <security-realm name="ManagementRealm">
>                 <server-identities>
>                     <ssl>
>                         <keystore path="server.keystore" relative-to="jboss.domain.config.dir" keystore-password="******" alias="server"/>
>                     </ssl>
>                 </server-identities>
>                 <authentication>
>                     <properties path="mgmt-users.properties" relative-to="jboss.domain.config.dir"/>
>                 </authentication>
>             </security-realm>
>             ...
>             <http-interface security-realm="ManagementRealm">
>                 <http-upgrade enabled="true"/>
>                 <socket interface="local" port="${jboss.management.local.http.port:9990}"/>
>                 <socket interface="management" secure-port="${jboss.management.https.port:9443}"/>
>             </http-interface>
>     ...
>     <interfaces>
>         <interface name="local">
>             <inet-address value="${jboss.bind.address.local.management:127.0.0.1}"/>
>         </interface>
>         <interface name="management">
>             <inet-address value="${jboss.bind.address.management:jbaesner.remote.csb}"/>
>         </interface>
>     </interfaces>
>     ...
> {code}



--
This message was sent by Atlassian Jira
(v7.12.1#712002)



More information about the jboss-jira mailing list