URL以斜杠结尾,返回406而不带斜杠

时间:2019-08-01 21:00:13

标签: java spring rest tomcat

我有一个API,如果我将请求发送给它,则如果包含尾部的斜杠,该API会很好地工作,但是如果删除该斜杠,则返回406。

请求:

http://localhost:8080/project/app/pay.pl?action=actionhere&email=my@email.com&password=password&amount=1&currency=USD&bnf_email=recipient@domain.com&subject=subject&note=note&frn_trn_id=111

这不起作用并返回406,但是如果我添加一个字符:

http://localhost:8080/project/app/pay.pl/?...

在'pl'后面加上斜杠就可以了。

现在,它正在使用Spring 4.3和Java 8在tomcat 9中运行。

配置:

@Configuration 
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.setUseTrailingSlashMatch(true);
    }

    ...
}

Rest控制器:

@RequestMapping(value={"/app/{pay:.+}"}, method=RequestMethod.GET, produces = {"application/xml;charset=UTF-8"})
public Object handle(...) {
    ...
}

如果我将其设置为“ /app/pay.pl”,则会返回400

0 个答案:

没有答案