我想不受限制地访问/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>但它不起作用。
发布于 2016-03-16 11:19:58
servlet规范(可下载的here)不支持您尝试使用的模式:
在Web应用程序部署描述符中,使用以下语法定义映射:
因此,如果您需要匹配所有CSS文件,您应该能够将其指定为扩展映射:
<security-constraint>
<web-resource-collection>
<web-resource-name>Unprotected Area</web-resource-name>
<url-pattern>*.css</url-pattern>
</web-resource-collection>
</security-constraint>发布于 2016-06-03 16:33:24
我也有同样的问题。我的*.css和*.js文件分别位于WebRoot/resources/css和WebRoot/resources/script中。为了访问这些文件,我在"*-servlet.xml"中添加了<mvc:resources mapping="/resources/**" location="/resources/" />行。
现在,我将以下代码作为最后一个安全约束添加到我的web.xml中,从而允许所有用户角色访问:
<security-constraint> <web-resource-collection> <web-resource-name>CSS and JS Files</web-resource-name> <url-pattern>/resources/*</url-pattern> </web-resource-collection> </security-constraint>
我希望这能帮到你。
https://stackoverflow.com/questions/36026023
复制相似问题