在jboss / wildfly中从http到https的条件重定向

时间:2019-05-02 10:40:58

标签: java web https jboss wildfly

  

JBoss / Wildfly => standalone.xml

仅当请求URL包含域名时,才将 http重定向到https 。如果从IP地址访问该网站,请不要重定向。

http://x.x.x.x:8080 -> do not redirect

http://xx.example.com -> redirect to https://xx.example.com

我正在使用http到https重定向,并使用 standalone.xml

中的以下代码
<server name="default-server">
    <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
    <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
    <host name="default-host" alias="localhost">
        <filter-ref name="http-to-https" predicate="equals(%p,8080)"/>
    </host>
</server>
<filters>
    <rewrite name="http-to-https" target="https://%v%U%q" redirect="true"/>
</filters>

但是在这种情况下,如果端口为8080,则重定向来自IP或域名的所有请求。

http://x.x.x.x:8080 -> redirecting to https://x.x.x.x:8080

http://xx.example.com -> redirecting to https://xx.example.com

但是如果从IP请求,我不会重定向,而仅从域名重定向。

我正在使用http来通过 standalone.xml 中的以下代码进行https重定向。但是它在两种情况下都不会重定向。

<server name="default-server">
    <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
    <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
    <host name="default-host" alias="localhost">
        <filter-ref name="http-to-https" predicate="regex(pattern='/http://(.*).example.com/g') and equals(%p,8080)"/>
    </host>
</server>
<filters>
    <rewrite name="http-to-https" target="https://%v%U%q" redirect="true"/>
</filters>

编辑

  

代理服务器转发80->8080。(即http://xx.example.com->   http://xx.example.com:8080

我也尝试过这种方法,但是在两种情况下都不能重定向。

<filter-ref name="http-to-https" predicate="regex(pattern='http://(.*).example.com', value=%U, full-match=false) and equals(%p,8080)"/>

谢谢

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方法

<filter-ref name="http-to-https" predicate="regex(pattern='example', value=%v, full-match=false) and equals(%p,8080)"/>
  

http://x.x.x.x:8080->不重定向

     

http://xx.example.com->重定向到https://xx.example.com