我有一个API,如果我将请求发送给它,则如果包含尾部的斜杠,该API会很好地工作,但是如果删除该斜杠,则返回406。
请求:
http://localhost:8080/project/app/pay.pl?action=actionhere&email=my@email.com&password=password&amount=1¤cy=USD&bnf_email=recipient@domain.com&subject=subject¬e=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