如何在 Spring MVC 应用程序中检查请求是否跨域?

How to check if request if cross domain or not in Spring MVC application?

我需要在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 地址。

虽然阿里的已经涵盖了你要找的东西,但在我看来你似乎想要控制跨域请求。

如果是这种情况,我建议您查看 Spring( 从 4.2 版开始可用 )支持通过 [=12= 控制跨域请求] 注释和 xml 配置即 <mvc:cors> <mvc:mapping path="/**" /> </mvc:cors>.

有关实现的详细信息,请参阅 Spring 博客 here and here