首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拒绝通过restful访问文件

拒绝通过restful访问文件
EN

Stack Overflow用户
提问于 2016-09-16 21:00:23
回答 1查看 1.4K关注 0票数 1

在我的web应用程序中,我实现了一种在控制器中下载文件的方法:

代码语言:javascript
复制
@RequestMapping(
        value = "/ristore/foundation/xml/{filename}",
        method = RequestMethod.GET,
        produces = "application/xml")
public ResponseEntity<byte[]> downloadXMLFile(@PathVariable String filename) throws IOException {
    FileSystemResource xmlFile = new FileSystemResource("/rsrch1/rists/moonshot/data/prod/foundation/xml/" + filename + ".xml");
    byte [] content = new byte[(int)xmlFile.contentLength()];
    IOUtils.read(xmlFile.getInputStream(), content);

    return ResponseEntity.ok()
        .contentType(MediaType.parseMediaType("application/octet-stream"))
        .contentLength(xmlFile.contentLength())
        .body(content);
}

我硬编码了方法中文件的路径。它是指向Tomcat实例正在运行的服务器上所有文件所在的目录的路径。

我在tomcat服务器上部署了war。这个网络应用程序是用户risdev拥有的。

然而,当我试图检索文件时,我得到了500。在catalina.out中,它显示错误如下:

代码语言:javascript
复制
[/ristore/foundation/xml/TRF174146_09092016230414] due to exception [/rsrch1/rists/moonshot/data/prod/foundation/xml/TRF174146_09092016230414.xml (Permission denied)]

服务器管理员授予对该文件夹的risdev访问权限。当我以risdev身份登录服务器时,我可以毫无问题地读取准确的文件。

那么,为什么我没有权限通过api阅读它呢?实际获取文件的用户是谁?

编辑:我找到了一个tomcat进程,它与部署war的文件夹相关联。它确实是由risdev运行的,他应该拥有对这些文件的权限。

编辑#2刚刚与在此服务器上安装tomcat的管理员确认。他确实使用risdev安装tomcat实例,并在安装后运行startup.sh。因此,tomcat肯定是由risdev拥有和运行的。在同一台服务器上,risdev绝对拥有访问该文件夹中文件的读取权限,这是由命令行(ls和less)确认的。只是当通过tomcat访问文件时,权限被拒绝了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-17 14:56:33

检查下列条件:

  1. 为了访问此文件夹,必须与risdev用户一起启动Tomcat。
  2. 文件夹"/rsrch1/rists/moonshot/data/prod/foundation/xml/“及其内的所有文件必须具有risdev所有者(或其他人或相应组的读/写权限)。

作为参考,您可以使用以下命令检查正在运行的进程的所有者:

代码语言:javascript
复制
ps -ef 

并利用grep缩小了结果。示例:

代码语言:javascript
复制
ps -ef |grep java

如何更改文件夹及其内所有文件的所有者:

代码语言:javascript
复制
chown -R rizdev /rsrch1/rists/moonshot/data/prod/foundation/xml/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39540000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档