Вы можете создать rewrite
фильтр в подсистеме Undertow, а затем ссылаться на него на хосте сервера в файле конфигурации ( автономный. xml или домен. xml - в зависимости от режима, в котором вы запускаете сервер приложений).
Я могу придумать два варианта, которые могут вам помочь:
Использование JBoss Application Server Client
(должно быть помещено в path/to/jboss-7.2/bin/
)
- Создание фильтра перезаписи с пользовательским именем
redirect-http-to-https
:
./jboss-cli.sh --connect --command="/subsystem=undertow/configuration=filter/rewrite=redirect-http-to-https:add(redirect=\"true\",target=\"https://%{LOCAL_SERVER_NAME}%{REQUEST_URL}\")"
- Использование / ссылка на фильтр
redirect-http-to-https
:
./jboss-cli.sh --connect --command="/subsystem=undertow/server=default-server/host=default-host/filter-ref=redirect-http-to-https:add(predicate=\"equals(%p,80)\")"
Редактирование соответствующего файла конфигурации вручную (например, standalone.xml
)
<subsystem xmlns="urn:jboss:domain:undertow:11.0" default-server="default-server" [...]>
<buffer-cache name="default"/>
<server name="default-server">
[...]
<host name="default-host" alias="localhost">
<filter-ref name="redirect-http-to-https" predicate="equals(%p,80)"/>
</host>
</server>
[...]
<filters>
<rewrite name="redirect-http-to-https" target="https://%{LOCAL_SERVER_NAME}%{REQUEST_URL}" redirect="true"/>
</filters>
</subsystem>
Примечание: для атрибутов обмена Undertow (например, LOCAL_SERVER_NAME
) обратитесь к документации Undertow . Кроме того, часть predicate=\"equals(%p,80)\"
в filter-ref
проверяет запрошенный порт (%p
-> просто еще один атрибут обмена Undertow) и, если он равен 80
, запускает наш фильтр перенаправления redirect-http-to-https
- вы можете изменить порт 80
в соответствии с вашими потребностями.