Java 在 HttpServletRequest 中获得 TRUE 起源
Posted
技术标签:
【中文标题】Java 在 HttpServletRequest 中获得 TRUE 起源【英文标题】:Java get TRUE origin in HttpServletRequest 【发布时间】:2017-03-17 04:41:51 【问题描述】:我正在构建启用了 CORS 的 rest API。由于必须从已知域访问 API,我必须检查请求的来源是否在“白名单”域中。
但我必须 100% 确定,请求的来源确实是来源,而不是某些修改后的标头。
我找到了这个链接: https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
关于禁止的标头名称,所以我问的是这个信息是否可以,没有人可以更改标头来源?
我正在像这样访问 Java 中的请求:
(HttpServletRequest) request.getHeader("origin")
这是我的做法吗?
【问题讨论】:
【参考方案1】:Spring 具有出色的开箱即用支持来处理可通过 xml 或 java 配置使用的跨源请求。
此外,配置可以是全局的(通过CorsRegistry
)或特定于控制器的(@CrossOrigin
)以进行精细控制
查看here 和here,其中包含有关如何开始以及如何工作的详细信息。
【讨论】:
以上是关于Java 在 HttpServletRequest 中获得 TRUE 起源的主要内容,如果未能解决你的问题,请参考以下文章
为啥 HttpServletRequest.getRemoteAddr() 在 Java servlet 中不起作用? [复制]
Java HttpServletRequest中getAttribute()方法和getParameter()区别
Java 在 HttpServletRequest 中获得 TRUE 起源
java.lang.NoSuchMethodError:javax.servlet.http.HttpServletRequest.isAsyncStarted