如何实现招摇读取标题输入“ Origin”并显示相同内容

时间:2019-01-03 12:15:53

标签: web-services spring-boot servlets swagger-ui

浏览器将当前的招摇网址作为Origin。并且未考虑新的输入Origin。

注意:除了预定义的标头HttpHeaders.ORIGIN以外,标头的所有其他自定义值都可以正常工作。例如。

@ApiOperation(value="Read X-Origin")
@GetMapping(value = "/origin")
public String getNewOrigin(@RequestHeader("X-ORIGIN") URI origin) {
   return origin.toString();
}

但是在这种情况下,我们正在尝试修改原始标头值“ Origin”。在邮递员中,我们将变得完美。但是,当我们在浏览器中通过swagger-ui执行时,它将“ http://localhost:8080/swagger-ui.html”作为来源。

参考:(CORS and Origin header?

首先要注意的是,有效的CORS请求始终包含一个Origin标头。此Origin标头是由浏览器添加的,不能由用户控制。此标头的值是请求所源自的方案(例如http),域(例如bob.com)和端口(仅当它不是默认端口(例如81)时才包括);例如:http://api.alice.com

Origin标头的存在并不一定意味着该请求是跨源请求。尽管所有跨域请求都将包含一个Origin头,但是一些相同域的请求也可能具有一个。例如,Firefox在同源来源的请求中不包含Origin标头。但是Chrome和Safari在起源相同的POST / PUT / DELETE请求中包含一个Origin头(起源相同的GET请求将没有Origin头)。

下面是我的代码段

我的期望是为此添加醒目实现。预期的输出是新的原始值,我们将通过招摇来读取。

@GetMapping(value = "/origin")
public String getNewOrigin(@RequestHeader(HttpHeaders.ORIGIN) URI origin) {
   return origin.toString();
}

任何帮助将不胜感激。

0 个答案:

没有答案