在ActiveMQ中删除嵌入式码头中的码头版本



我们在ActiveMQ文档中尚未看到如何隐藏嵌入式码头版本。当我们在端口80上使用Web插座运输时,我们的穿透测试程序将其标记为安全线程。我们一直在使用配置文件Jetty.xml和参数进行播放,但没有成功。它已经针对其他项目(请参阅https://issues.apache.org/jira/browse/hadoop-13414(,

中的一个补丁

到目前为止,我们一直在尝试更改Jetty.xml中的配置。

搜索码头属性后,这就是我们配置属性的属性的方式:

<bean id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
  <property name="sendServerVersion" value="false">
  </property>
</bean>

但是,这对版本的暴露没有影响。我们尝试了连接工厂的进一步尝试,但这也没有效果:

<bean id="invokeConnectors" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
  <property name="targetObject" ref="Server" />
  <property name="targetMethod" value="setConnectors" />
  <property name="arguments">
    <list>
      <bean id="Connector" class="org.eclipse.jetty.server.ServerConnector">
        <constructor-arg ref="Server" />
        <constructor-arg>
        <list>
          <bean id="httpConnectionFactory"       class="org.eclipse.jetty.server.HttpConnectionFactory">
            <constructor-arg ref="httpConfig"/>
          </bean>
        </list>
      </constructor-arg>
<!-- see the jettyPort bean -->
<property name="host" value="#{systemProperties['jetty.host']}" />
<property name="port" value="#{systemProperties['jetty.port']}" />
</bean>
    </list>
  </property>
</bean>

我们是在正确的轨道上,还是需要由ActiveMQ的代码库解决?

这就是我们显示版本的方式:

#nmap -sV -p80 localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2018-04-23 18:16 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000098s latency).
PORT STATE SERVICE VERSION
80/tcp open http Jetty 9.2.22.v20170606
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.34 seconds

编辑:我们在ActiveMQ JIRA中收到了一个答案,该答案表明它将需要一些代码修改在ActiveMQ项目中。如果当前状态发生变化,我们将更新此问题。当前的ActiveMQ为5.15.3。

引用链接问题的蒂姆·贝恩:

以来org.apache.activemq.transport.discovery.http.embeddedjettyserver.start((通过调用新的(没有弹簧注射(来创建其服务器,该方法的代码没有提供任何指定httpcconfiguration,htttpconfiguration,改变此行为的能力需要更改代码。org.apache.activemq.transport.webtransportserversupport中也有类似的代码,也没有任何能够指定将禁用版本号发送的httpconfiguration。

使用...

org.eclipse.jetty.server.HttpConfiguration.setSendServerVersion(false);

...是正确的设置。

但是,您无法在启动服务器后更改此操作。

服务器本身的启动,是您唯一可以进行此更改的地方。

创建连接器/初始化是使用此设置的唯一位置。

这是因为该设置在启动期间传播到许多组件(HTTP/1 Generator,HTTP/2 Generator,errorPage Generator,Websocket升级过程等(

相关内容

  • 没有找到相关文章

最新更新