java - ** 在 web.xml 安全约束中不起作用

标签 java servlets web.xml security-constraint

我想要不受限制地访问/gadgets/{any directory}/css/*。 我试着这样提及

<security-constraint>
  <web-resource-collection>
    <web-resource-name>UnProtected Area</web-resource-name>
    <url-pattern>/gadgets/**/css/*</url-pattern>
  </web-resource-collection>
</security-constraint>

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Protected Area</web-resource-name>
    <url-pattern>/gadgets/*</url-pattern>
  </web-resource-collection>
   <auth-constraint>
     <role-name>LOGIN</role-name>
   </auth-constraint>
</security-constraint>

但是它不起作用。

最佳答案

servlet 规范不支持您尝试使用的模式(可下载 here ):

In the Web application deployment descriptor, the following syntax is used to define mappings:

  • A string beginning with a ‘/’ character and ending with a ‘/*’ suffix is used for path mapping.
  • A string beginning with a ‘*.’ prefix is used as an extension mapping.
  • The empty string ("") is a special URL pattern that exactly maps to the application's context root, i.e., requests of the form http://host:port//. In this case the path info is ’/’ and the servlet path and context path is empty string (““).
  • A string containing only the ’/’ character indicates the "default" servlet of the application. In this case the servlet path is the request URI minus the context path and the path info is null.
  • All other strings are used for exact matches only

因此,如果您需要匹配所有 CSS 文件,您的应该能够将其指定为扩展映射:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Unprotected Area</web-resource-name>
    <url-pattern>*.css</url-pattern>
  </web-resource-collection>
</security-constraint>

关于java - ** 在 web.xml 安全约束中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36026023/

相关文章:

java - JPA 2.0/hibernate : Why does LAZY fetching with "@OneToOne" work out of the box?

java - 如何在 Linux Mint 中为 Intellij 创建菜单项?

java - 如何在 servlet 中显示文件位置的视频

java - 如何获取部署在 Apache Tomcat 7 上的 Java Web 应用程序的正常运行时间报告?

java - 如何在Hibernate中调用用户定义的mysql函数

caching - 过滤 web.xml 中的 url 模式冲突?

java - Jersey+Grizzly 启动时加载,无需 web.xml

rest - Jersey 与 javax Servlet 发生冲突

java - 如何从 session ID中提取 session 对象?

java - 尝试运行 servlet 时出现 HTTP 状态 404 错误