Java Spring中转发头和多个值的问题
根据,转发头的语法如下所示:Java Spring中转发头和多个值的问题,java,spring,spring-mvc,Java,Spring,Spring Mvc,根据,转发头的语法如下所示: Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https> 中的代码获取第一个转发头,如果找到多个转发头,则用逗号将其拆分,并仅使用第一部分: UriComponentsBuilder adaptFromForwardedHeaders(HttpHeaders headers) { try {
Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https>
中的代码获取第一个转发头,如果找到多个转发头,则用逗号将其拆分,并仅使用第一部分:
UriComponentsBuilder adaptFromForwardedHeaders(HttpHeaders headers) {
try {
String forwardedHeader = headers.getFirst("Forwarded");
if (StringUtils.hasText(forwardedHeader)) {
String forwardedToUse = StringUtils.tokenizeToStringArray(forwardedHeader, ",")[0];
....
}
使用上面的示例,forwardedToUse
变量变为Forwarded:for=192.0.2.43
,其中所有有用的信息都被修剪
这真的是一个问题还是我遗漏了什么?如果这真的是个问题,我该怎么处理呢。
提前多谢 在Spring中,在多个值的情况下,似乎存在转发头的问题。它已通过下面的提交得到修复,并将在下一版本中提供:
- GitHub问题:
- Spring框架提交:
- 发布:
UriComponentsBuilder adaptFromForwardedHeaders(HttpHeaders headers) {
try {
String forwardedHeader = headers.getFirst("Forwarded");
if (StringUtils.hasText(forwardedHeader)) {
String forwardedToUse = StringUtils.tokenizeToStringArray(forwardedHeader, ",")[0];
....
}