我是一名习惯于老派定义servlet / mappings方式的管理员,即在web.xml中。
Servlet 3.0非常棒,如果您是开发人员,@ WebServlet注释肯定很有用。
问题是,作为管理员,如果我正在管理包含许多由注释定义的不同实用程序servlet(servlets.jar)的webapp,而不是所有这些都适用于每个部署,那该怎么办?换句话说,我想要将适用于给定部署的URI映射列入白名单,或者将那些非映射列入黑名单。
没有回复到早期的servlet规范,理想情况下(虽然这不在桌面之外)而不要求我的开发人员改变他们的工作方式。
如果重要的话,运行JDK 1.7 Tomcat 7.
答案 0 :(得分:1)
我想要将适用于给定部署的URI映射列入白名单,或者将那些不合适的URI映射列入黑名单。
您可以使用<security-constraint>
空<auth-constraint>
来阻止访问给定的网址格式。
<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>
答案 1 :(得分:0)
您可以禁用jar扫描,在web.xml中添加metadata-complete="true"
到web-app
标记。通过这种方式,您将需要像往常一样在web.xml中使用所有servlet,过滤器等。