3

我希望可以不受限制地访问 Web 服务器根目录(欢迎页面)上的文件,但是 - 默认情况下 - 限制了对解析到子文件夹的所有 url 的访问。

我面临的问题是,当使用 / 或 /* 进行受限访问作为限制访问的默认匹配时,根文件夹不能再不受限制了。在根目录下,我希望在访问域名时出现默认的“index.html”。任何建议表示赞赏。

顺便说一句,我正在使用码头 6.1.6

这是我的 web.xml 文件的片段:

<servlet-mapping>
  <servlet-name>SomeServlet</servlet-name>
  <url-pattern>/servlet1</url-pattern>
</servlet-mapping>

<security-constraint>
  <web-resource-collection>
  <web-resource-name>ForbidDefaultAccess</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint/>
</security-constraint>

<security-constraint>
  <web-resource-collection>
  <!-- unauthorized -->      
    <web-resource-name>GrantAccess</web-resource-name>
    <url-pattern>/some_dir/*</url-pattern>
    <url-pattern>/servlet1</url-pattern>
    <url-pattern>/</url-pattern>      
  </web-resource-collection>
</security-constraint>

<security-constraint>
  <web-resource-collection>
    <web-resource-name>AuthorizedResources</web-resource-name>
    <url-pattern>/cfg/*</url-pattern>
    <url-pattern>/fileupload/*</url-pattern>
    <url-pattern>/list/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>UserRole</role-name>
  </auth-constraint>
</security-constraint>

提前致谢

4

2 回答 2

3

在 Java J2EE 6 中可以列入白名单

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Disable unneeded HTTP methods by 403 Forbidden them</web-resource-name>
        <url-pattern>*</url-pattern>
        <http-method-omission>GET</http-method-omission>
        <http-method-omission>HEAD</http-method-omission>
        <http-method-omission>POST</http-method-omission>
        </web-resource-collection>
    <auth-constraint />
</security-constraint>

参考:https ://blogs.oracle.com/nithya/entry/new_security_features_in_glassfish

于 2013-10-21T23:13:59.347 回答
0

您可以创建一个Filter, 应用于所有 URL。让它检查 URL 的深度(基本上是斜杠的数量),并相应地允许或拒绝对资源的访问,chain.doFilter()在第一种情况下使用,HTTP 403 error在第二种情况下抛出 a。

于 2013-03-08T13:43:17.970 回答