通过白名单基于文件扩展名限制/允许在tomcat中访问文件

时间:2012-03-25 18:21:05

标签: java security java-ee tomcat6

在tomcat中,我需要通过filetype

禁止访问浏览器

我可以做以下

<servlet-mapping>
  <servlet-name>Error Servlet</servlet-name>
  <url-pattern>*.log</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>Error Servlet</servlet-name>
  <url-pattern>*.java</url-pattern>
</servlet-mapping>

但是,不是像这样列入黑名单,是否可以进行我想允许访问的类型的白名单?像* .jsp,* .html,* .jpeg

谢谢

1 个答案:

答案 0 :(得分:0)

你可以这样做:

   <servlet-mapping>
      <servlet-name>Servlet</servlet-name>
      <url-pattern>*.*</url-pattern>
    </servlet-mapping>

并在servlet中:

private final String enabled = "^(.)+((\.jsp)|(\.html)|(\.jpeg))$";

public void service(...) {
     if (!request.getRequestURI().matches(enabled)) {
        response.sendError(401);
        return;
     }
}