Как удалить заголовок сервера в Payara Micro 172?

Я бы хотел удалить заголовок сервера из вывода Payara Micro.

Например, он сообщает следующее:

HTTP/1.1 200 OK
Server: Payara Micro #badassfish

Я бы хотел избавиться от этой Server строчки.

Я вижу, что проблема 32 теоретически дает возможность отключить это. связанный запрос на перенос определенно показывает, что существует какое-то свойство, к которому обращаются отключите это. Из этого я могу сделать вывод, что я мог бы предположительно войти в административный графический интерфейс, если бы это был полноценный сервер, и установить где-нибудь флажок.

Но я использую Payara Micro, который необходимо полностью настроить из командной строки при запуске.

Чего мне не хватает, так это простой инструкции типа «поместите это в командную строку», и я не могу найти ее где-нибудь. Есть ли параметр, скажем, в glassfish-web.xml-as-modified-by-Payara, который я мог бы использовать? Или переключатель командной строки? Или конкретный атрибут asadmin, который я мог бы установить в сценарии предварительной загрузки? Идеи?


person Laird Nelson    schedule 08.09.2017    source источник


Ответы (1)


Изменение, на которое вы ссылались, связано с запросом на перенос, в котором добавлено логическое свойство server-header к http-слушателю, который отключит заголовок.

Не существует собственной команды asadmin для установки этого свойства, поэтому вам нужно будет использовать команду asadmin set с правильным именем, разделенным точками, для слушателя, который вы хотите изменить. Чтобы узнать, что это, вы можете использовать команду get с подстановочным знаком и grep для нужного значения, как показано ниже с сервером Payara:

➜  ~ /opt/payara/server/171.1/bin/asadmin get "*" | grep server-header  
configs.config.default-config.network-config.protocols.protocol.http-listener-2.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.http-listener-1.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.admin-listener.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.admin-listener.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.sec-admin-listener.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.http-listener-2.http.server-header=true

Поскольку default-config - это просто шаблон и не используется, нам нужны слушатели из server-config. http-listener-1 для HTTP по умолчанию и http-listener-2 для HTTPS по умолчанию. Чтобы изменить свойство server-header в Payara Micro, вам нужно будет создать файл с помощью следующей команды (обратите внимание, что Payara Micro по умолчанию имеет только один прослушиватель с именем http-listener):

set configs.config.server-config.network-config.protocols.protocol.http-listener.http.server-header=false

Затем вы можете применить их с помощью файла prebootcommand следующим образом:

java -jar /opt/payara/micro/173/payara-micro.jar --prebootcommandfile myCommands.txt

Вы также можете отключить свойство xpowered-by с помощью того же метода.

person Mike    schedule 08.09.2017
comment
Большое спасибо! Я пробовал это на Payara Micro 172, и это не сработало. Должен ли --preBootCommandFile быть первым после файла .jar? (Обратите также внимание на то, что я использую регистр верблюда, если это имеет значение; я, кажется, припоминаю, что эти параметры нечувствительны к регистру с 171.) - person Laird Nelson; 09.09.2017
comment
Порядок команд не имеет значения (порядок важен только там, где у вас есть такие вещи, как несколько команд развертывания). Однако вы можете попробовать использовать этот файл как файл postbootcommand. Проблема с файлом prebootcommandfile заключается в том, что он настолько ранний в последовательности загрузки, что при запуске файла все может не инициализироваться должным образом. Трудно сказать заранее, слишком ли рано, не попробовав сначала. - person Mike; 09.09.2017
comment
Я думаю, что также может быть проблема с аргументом --systemProperties, который я тоже использую. Оставив это на время в стороне, действительно, когда я удаляю --systemProperties, я вижу WARNING: Boot Command set failed PlainTextActionReporterFAILURENo configuration found for configs.config.server-config.network-config.protocols.protocol.http-listener-1.http на выходе. Я посмотрю, сработает ли переход на послезагрузочную (вроде как должно). Еще раз спасибо! - person Laird Nelson; 09.09.2017
comment
Ах, вероятно, имя http-прослушивателя неправильное. Я думаю, что в Micro есть только один (если вы не укажете другой), и он, вероятно, просто называется http-listener. Я не могу сейчас проверить, но вы можете использовать параметр --rootDir, чтобы выгрузить конфигурацию в каталог по вашему выбору. Затем вы можете заглянуть в domain.xml и увидеть, как он называется. - person Mike; 09.09.2017
comment
Для потомков: действительно, есть только один, и он (похоже) называется http-listener. Спасибо за оперативную помощь. - person Laird Nelson; 09.09.2017