1

我是一个习惯于定义 servlet/mappings 的老式方法的管理员,即在 web.xml 中。

Servlet 3.0 很棒,如果您是开发人员,@WebServlet 注释肯定很漂亮。

问题是,作为管理员,如果我正在管理一个 web 应用程序,其中包含许多由注释定义的不同实用程序 servlet (servlets.jar),但并非所有这些都适用于每个部署?换句话说,我想将适合给定部署的 URI 映射列入白名单,或者将不适合的映射列入黑名单。

无需恢复到较早的 servlet 规范,并且理想情况下(尽管这还没有解决)而不要求我的开发人员改变他们做事的方式。

如果重要的话,运行 JDK 1.7 Tomcat 7。

4

2 回答 2

1

我想将适合给定部署的 URI 映射列入白名单,或者将不适合的映射列入黑名单。

您可以使用<security-constraint>带空的 a<auth-constraint>来阻止对给定 URL 模式的访问。

<security-constraint>
    <display-name>Restrict direct access to some servlets.</display-name>
    <web-resource-collection>
        <web-resource-name>Restricted URLs</web-resource-name>
        <url-pattern>/servlet1/*</url-pattern>
        <url-pattern>/servlet2/*</url-pattern>
        <url-pattern>/servlet3/*</url-pattern>
        <!-- ... -->
    </web-resource-collection>
    <auth-constraint />
</security-constraint>
于 2012-12-19T17:29:45.040 回答
0

metadata-complete="true"您可以在 web.xml 中添加toweb-app标记来禁用 jar 扫描。这样,您将需要像往常一样在 web.xml 中使用所有 servlet、过滤器等。

于 2015-02-26T19:06:28.710 回答