如果 tomcat 服务器在反向代理后面运行,如何确定请求方案、上下文路径

发布于 2024-12-21 16:14:26 字数 285 浏览 3 评论 0原文

我正在为 Java 中的 Web 应用程序构建一个插件,该插件在 Tomcat 上运行并在 apache 反向代理服务器后面运行。

我能够得到以下内容:

Host Name : request.getLocalName()

Port: request.getLocalPort()

如何获取原始请求的以下内容,而不是代理请求的内容:

请求方案:??

上下文路径:??

I am building a plugin for a web application in java which is running on Tomcat and behind a apache reverse proxy server.

I am able to get the following:

Host Name : request.getLocalName()

Port: request.getLocalPort()

How can I get the following for original request, not for proxy request:

Request Scheme : ??

Context Path: ??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

变身佩奇 2024-12-28 16:14:26

要获取用于保护 Servlet 的身份验证方案,您可以从类 HttpServletRequest 调用方法 getAuthType()。这将返回与 javadoc 中指定的静态最终匹配的值。

Field Summary:
  static String BASIC_AUTH 
    String identifier for Basic authentication. 
  static String CLIENT_CERT_AUTH 
    String identifier for Client Certificate authentication.
  static String DIGEST_AUTH 
    String identifier for Digest authentication. 
  static String FORM_AUTH 
    String identifier for Form authentication. 

要获取上下文路径,您只需调用 HttpServletRequest 的 getContextPath() 即可。

编辑:

要获取代理后面服务器的本地计算机名称,您可以获取本地主机计算机名称:

java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();

To get the authentication scheme used to protect the Servlet you can call from class HttpServletRequest the method getAuthType(). This will return values matching the static finals as specified in the javadocs.

Field Summary:
  static String BASIC_AUTH 
    String identifier for Basic authentication. 
  static String CLIENT_CERT_AUTH 
    String identifier for Client Certificate authentication.
  static String DIGEST_AUTH 
    String identifier for Digest authentication. 
  static String FORM_AUTH 
    String identifier for Form authentication. 

To get the context path you would just call getContextPath() of HttpServletRequest.

EDIT:

To get the local machine name of the server behind the proxy you could get the localhost machine name:

java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文