反向代理背后的iccube
iccube behind reverse proxy
I 运行 icCube 在 nginx 后面充当反向代理并强制 https 请求。然后通过http调用icCube作为后台服务器。
jetty (icCube) 收到的请求目前不是 https。
我需要一个格式正确的请求 URI 方案(包含 https),因为它用于我在 icCube 中安装的自定义 servlet 过滤器中进行的 SSO 身份验证。
我认为 Jetty 的配置存在问题,因为如 Jetty 文档中关于转发请求的描述:https://www.eclipse.org/jetty/javadoc/9.4.8.v20171121/org/eclipse/jetty/server/ForwardedRequestCustomizer.html
反向代理 (nginx) 将以下 headers 传递给码头:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Proxied-Https on;
proxy_set_header X-Forwarded-Proto $scheme;
我查看了 icCube 配置 class 处理码头配置:
crazydev.iccube.server.http.IcCubeHttpComponentConfiguration
没有关于转发请求的信息。
Jetty 附带默认配置文件,其中一个符合我的需要:https://github.com/eclipse/jetty.project/blob/jetty-9.4.x/jetty-server/src/main/config/etc/jetty-http-forwarded.xml
如何应用转发配置?
预先感谢您的帮助。
在icCube 6.8.5之前,无法配置ForwardedRequestCustomizer的实例。
从 icCube 6.8.5 开始,icCube.xml 配置文件将为此目的包含一个新条目:
<forwardedRequestConfiguration>
<forwardedOnly>...</forwardedOnly>
<proxyAsAuthority>...</proxyAsAuthority>
<forwardedHeader>...</forwardedHeader>
<forwardedHostHeader>...</forwardedHostHeader>
<forwardedServerHeader>...</forwardedServerHeader>
<forwardedProtoHeader>...</forwardedProtoHeader>
<forwardedForHeader>...</forwardedForHeader>
<forwardedHttpsHeader>...</forwardedHttpsHeader>
<forwardedSslSessionIdHeader>...</forwardedSslSessionIdHeader>
<forwardedCipherSuiteHeader>...</forwardedCipherSuiteHeader>
</forwardedRequestConfiguration>
I 运行 icCube 在 nginx 后面充当反向代理并强制 https 请求。然后通过http调用icCube作为后台服务器。 jetty (icCube) 收到的请求目前不是 https。 我需要一个格式正确的请求 URI 方案(包含 https),因为它用于我在 icCube 中安装的自定义 servlet 过滤器中进行的 SSO 身份验证。
我认为 Jetty 的配置存在问题,因为如 Jetty 文档中关于转发请求的描述:https://www.eclipse.org/jetty/javadoc/9.4.8.v20171121/org/eclipse/jetty/server/ForwardedRequestCustomizer.html 反向代理 (nginx) 将以下 headers 传递给码头:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Proxied-Https on;
proxy_set_header X-Forwarded-Proto $scheme;
我查看了 icCube 配置 class 处理码头配置:
crazydev.iccube.server.http.IcCubeHttpComponentConfiguration
没有关于转发请求的信息。 Jetty 附带默认配置文件,其中一个符合我的需要:https://github.com/eclipse/jetty.project/blob/jetty-9.4.x/jetty-server/src/main/config/etc/jetty-http-forwarded.xml
如何应用转发配置? 预先感谢您的帮助。
在icCube 6.8.5之前,无法配置ForwardedRequestCustomizer的实例。
从 icCube 6.8.5 开始,icCube.xml 配置文件将为此目的包含一个新条目:
<forwardedRequestConfiguration>
<forwardedOnly>...</forwardedOnly>
<proxyAsAuthority>...</proxyAsAuthority>
<forwardedHeader>...</forwardedHeader>
<forwardedHostHeader>...</forwardedHostHeader>
<forwardedServerHeader>...</forwardedServerHeader>
<forwardedProtoHeader>...</forwardedProtoHeader>
<forwardedForHeader>...</forwardedForHeader>
<forwardedHttpsHeader>...</forwardedHttpsHeader>
<forwardedSslSessionIdHeader>...</forwardedSslSessionIdHeader>
<forwardedCipherSuiteHeader>...</forwardedCipherSuiteHeader>
</forwardedRequestConfiguration>