如果请求来自同源页面,我需要在 Spring 应用程序中检查,如何检查?
尽管Ali的回答已经涵盖了您正在寻找的内容,但在我看来,您似乎试图控制跨域请求。
如果是这种情况,我建议您查看Spring(从4.2版开始提供)支持,以通过@CrossOrigin注释和xml配置(即<mvc:cors> <mvc:mapping path="/**" /> </mvc:cors>
)来控制跨域请求。
有关实现的详细信息,请参阅此处和此处的 Spring 博客
将HttpServletRequest
添加到处理程序方法参数中,并将用户主机和端口与服务器的主机和端口进行比较:
@RequestMapping(method = GET)
public void crossOriginTest(HttpServletRequest request) {
String userHost = request.getRemoteHost();
int userPort = request.getRemotePort();
int serverPort = request.getServerPort();
String serverName = request.getServerName();
// compare them
// Maybe get the X-Forwarded-For
}
如果您的服务器位于负载均衡器或其他东西后面,请查看X-Forwarded-For
属性以识别客户端的 IP 地址。