java - request.getScheme() 正在返回 http 而不是在 java 中返回 https

标签 java jakarta-ee

function demo(request,response){
        request.getScheme() is returning http instead of returning https.
        System.out.println(""+request.getScheme());
}

输出:http

--上面的函数演示是从 main 方法调用的,但它打印 http 而不是在互联网服务器上工作时应该打印 https。

最佳答案

如果您的服务器在代理服务器后面运行,请确保设置了代理 header :

proxy_set_header X-Forwarded-Proto  $scheme;

然后要获得正确的方案,您可以使用 springframework 的类:

HttpRequest httpRequest = new ServletServerHttpRequest(request); //request is HttpServletRequest
UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(httpRequest).build();

String scheme = uriComponents.getScheme(); // http/https

关于java - request.getScheme() 正在返回 http 而不是在 java 中返回 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911469/

相关文章:

java - IntStream 的用例是什么?

java - 无法启动sonarqube 6.1

java - 我可以将 for 循环数字模式转换为 while 循环并执行 while 循环吗?

java - JDBC 从包含控制字符的数据库表中读取数据

java - 在构建 JSTL 经典 Select 标签后,我应该将 null 设置为大项吗

jakarta-ee - 如何将 JPA 和 JTA 与事务管理器一起使用?

java - JSP 中的 while 循环执行 javascript 不起作用?

java - JUnit4 是否开始支持测试排序?是故意的吗?

java - 您知道哪些用于 Java EE JSP 的标记库,例如 displaytag?

java - Maven、Jar 不包含 MAIN 项目 jar