testing - 如何使用 Mule 测试 CORS

标签 testing cors mule anypoint-studio crossdomain-request.js

我正在使用 Anypoint Studio 6.1 和 Mule 3.8.1,并且有一个 mule RESTful 应用程序,我想阻止应用程序接受 CORS 请求。

应用程序已设置为执行此操作,但证明此功能有效的最佳方法是什么?

根据我目前所读的内容,这些示例构建了自己的应用程序,我只想做一些事情,比如在 Postman 中发送一个配置为 CORS 请求的请求。我该怎么做?

谢谢

最佳答案

I want to stop CORS requests from being accepted by the application. I would just like to do something like send a request configured as a CORS request in Postman

您的意思是您只想阻止来自浏览器中运行的 Web 应用程序的跨域请求?

鉴于浏览器是唯一强制执行 CORS 限制的工具,并且它们仅针对来自实际 Web 应用程序中运行的代码的请求执行此操作,而不针对来自不受同源策略约束的扩展程序(例如 Postman)的请求Web 应用程序是 — 那么您将无法使用 CORS 来阻止来自 Postman 的请求或来自浏览器中未从 Web 应用程序运行的代码的请求。

The application has been setup to do this but what is the best way to prove this is working?

确认服务没有发送 Access-Control-Allow-Origin 响应 header ——它永远不会发送,除非它被明确配置为这样做或者它是使用某些服务器端构建的默认添加 Access-Control-Allow-Origin 的编程环境/框架。

但由于缺少 Access-Control-Allow-Origin,浏览器是唯一真正会阻止跨源请求的工具,因此您实际上只能在 Web 中测试阻止应用程序。

否则,您至少可以在浏览器外部进行测试,以查看将请求发送到的服务器返回了哪些响应 header 。在这种情况下要做的主要事情是确保请求发送一个 Origin header (一些服务器只发送 Access-Control-Allow-Origin 如果请求包含 Origin header ——因为浏览器是唯一自动发送 Origin 的工具。

因此,以 curl 为例,您需要这样做:

curl -H "Origin: https://example.com" https://service.to.test/

关于testing - 如何使用 Mule 测试 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354939/

相关文章:

java - 将 Mule Tomcat WAR 转换为 Spring Boot 时出现问题

mule - 当通过属性文件加载一个字符串时,如何比较 mule 表达式中的字符串?

reactjs - AVA 测试时找不到模块

ios - strip 切换到生产

symfony - Symfony 4和Nelmio CORS软件包的CORS错误

javascript - Express 将在本地主机上正确设置 CORS,但不会在实时服务器上设置

udp - Mule Syslog入站端点

ruby-on-rails - 如何撤消在我的 Rails/RSpec 测试中所做的文件系统更改?

c# - 以编程方式启动 Selenium 测试

javascript - 从浏览器中运行的前端 JavaScript 代码调用 Yelp API