如何拒绝直接url访问Jetty上的文件

时间:2014-08-12 19:39:19

标签: java file web-applications jetty block

我在Jetty上运行webapps。我已经设置了" dirAllowed"到"假"禁用在定义的上下文路径上的目录浏览 webAppContext.setInitParameter(" org.eclipse.jetty.servlet.Default.dirAllowed"," false")。

但是,用户仍然可以通过url访问其他文件(不在contextpath上)(例如http://somehost.yahoo.com:8081/abc.xml),abc.xml位于Jetty服务器的根目录下。

有没有办法阻止/拒绝直接url访问位于Jetty上的文件?谢谢!

1 个答案:

答案 0 :(得分:0)

并非没有为您的webapp添加某些功能,也没有。 Java Webapp本质上是一个标准化的目录结构,从上下文根开始(下面的示例中的myWebApp)。

myWebApp/
    index.jsp
    styles/
        mywebapp.css
    images/
        myimage.png
    WEB-INF/
        web.xml
        lib/
            MyLib.jar
        classes/
            MyPackage/
                MyServlet.class

WEB-INF以上的任何内容都可以直接使用,WEB-INF以下的任何内容都不是。您可以使用Servlet过滤器(http://www.oracle.com/technetwork/java/filters-137243.html)设想一些授权方案,并限制对WEB-INF上方内容的访问。或者,如果您正在进行身份验证/授权,请查看Http授权以及如何在Jetty(http://www.eclipse.org/jetty/documentation/current/configuring-security-authentication.html)中实现它。无论如何,您将使用一些编码或配置来限制对Java webapp中WEB-INF上方内容的访问。