我使用Spring Boot实现了一个REST应用程序。我有一个这样映射的资源
@RequestMapping(value = "/{fromLat}/{fromLon}/{toLat}/{toLon:.+}", method = {RequestMethod.GET},
produces = {"application/json"})
$ curl -I -X GET http://localhost:8085/foobar/53.481297/9.900539/53.491691/9.946046
不幸的是,最后一个结尾被解释为文件扩展名,导致响应头提供文件下载,而不仅仅是普通数据。
Content-Disposition: attachment;filename=f.txt
我认为我可以使用自定义的WebMvcConfigurerAdapter Bean(并且没有@enableWebMVC)注释来处理这种情况,就像这里解释的那样。
public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
}
但这并不奏效。不幸的是,检测到的文件扩展名不是fix-因此我不能使用规则来修复扩展名。
在Spring Framework 4.1.9和4.2.3中,Content-Disposition头被固定为使用“inline”类型,如果内容最终被下载,该类型只建议文件下载名。它将不再强制另存为对话框。
还要注意,设置Content-Disposition标头的原因首先是为了保护应用程序免受RFD攻击。这是一个非常复杂的问题,但你可以在CVE-2015-5211报告中看到一个总结。
问题内容: 我使用Spring Boot来实现REST应用程序。我有一个这样映射的资源 因此,路径包含坐标,并且请求如下所示 不幸的是,最后一端被解释为文件扩展名,它导致响应标头提供文件下载,而不仅仅是原始数据。 我以为我可以处理这种情况与自定义WebMvcConfigurerAdapter豆(且不@EnableWebMvc)注释解释一样在这里。 但这并不能解决问题。不幸的是,检测到的文件扩展名未
我在我的SpringMVC项目中得到了这个错误。我必须在浏览器中手动添加完整的路径来运行代码,但我不能直接运行它。 web.xml:
问题内容: 我必须将数据从Excel文件导入数据库,并执行此操作,我想检查所选文件的扩展名。 这是我的代码: 但是我总是得到: 选择一个Excel文件! 我找不到我的代码有什么问题,请有人帮忙。 问题答案: 以下 应该 要么
很抱歉再次问这种问题,但我无法通过查看其他线程和Spring doc来解决我的问题。 我正在使用maven的3.1.0.RELEASE,并尝试使用注释和java配置。 以下是我的web.xml: 这是我的档案web-application-config.xml. 我有两个类。第一个配置视图解析器 第二个定义我的控制器: 根据我的配置,我想一切都应该指向我的home()函数。然而,事实并非如此,以下
问题内容: 在JSF中,我可以将Faces Servlet映射到各种URL模式。例如。 但是我想要的是将Faces Servlet映射为 无 扩展名。意思是,如果我在Web根目录中有一个页面,我想使用来请求此页面。 我看了一个问题,如何配置不带文件扩展名的JSFURL映射?这在某种程度上是可行的,但它要求我分别映射我拥有的每个文件(如果我输入错了,请更正我)。 如何将所有文件一次映射到Faces
问题内容: 我已经检查了关于stackoverflow的几乎所有相关文章,但是我无法解决我的问题。 Here is the code: web.xml: spring-servlet.xml: myController: Web Pages/index.jsp: Web Pages/WEB-INF/jsp/hello.jsp: 因此,当我启动该应用程序时,index.jsp已正确加载,但是当我单击