gpt4 book ai didi

java - https到http重写、https检测、java spring mvc

转载 作者:行者123 更新时间:2023-12-01 05:00:17 24 4
gpt4 key购买 nike

我正在尝试通过修改以下代码来检测发出的 https 请求:

public static boolean isOnHttps(HttpServletRequest request) {
String protoHeader = request.getHeader(Constants.Header.X_FORWARDED_PROTO);

if (null == protoHeader || ! protoHeader.equals("https")) {
return false;
}

return true;
}

上面的代码无法检测到一些 https 请求,对此我有两个问题:

  1. getHeader的参数代表什么?

  2. 我应该如何检测通过 https 向我们的服务器发出的每个请求?

如果您能指出我的方向,那将非常有帮助。提前感谢您的宝贵时间。

最佳答案

Q: What does the parameter of getHeader stand for ?

X_FORWARD_PROTO的目的是确定HTTP请求的发起协议(protocol)(因为中间的负载均衡器/代理可以终止HTTPS连接)。如果您发布导入的常量,将会很有用。对于哪些请求,它无法检测到原始协议(protocol)?但是,下面提到的方法应该会有所帮助..

Q: What should I do to detect every request made to our servers via https ?

有一个方法 SerlvetRequest#isSecure() 在 https 请求的情况下返回 true。来自 Javadoc :

Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS.

要进一步阅读,请考虑此 great answer .

关于java - https到http重写、https检测、java spring mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13475607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com