首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >**不能在web.xml安全中工作-约束

**不能在web.xml安全中工作-约束
EN

Stack Overflow用户
提问于 2016-03-16 10:55:02
回答 2查看 922关注 0票数 1

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

代码语言:javascript
复制
<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>

但它不起作用。

EN

回答 2

Stack Overflow用户

发布于 2016-03-16 11:19:58

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

在Web应用程序部署描述符中,使用以下语法定义映射:

  • 以‘/’字符开头、以‘/*’后缀结尾的字符串用于路径映射。
  • 以‘*’开头的字符串前缀被用作扩展映射。
  • 空字符串("")是一种特殊的URL模式,它精确地映射到应用程序的上下文根,即http://host:port//形式的请求。在这种情况下,路径信息是‘/’,servlet路径和上下文路径是空字符串(“”)。
  • 只包含‘/’字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为null。
  • 所有其他字符串仅用于完全匹配

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

代码语言:javascript
复制
<security-constraint>
  <web-resource-collection>
    <web-resource-name>Unprotected Area</web-resource-name>
    <url-pattern>*.css</url-pattern>
  </web-resource-collection>
</security-constraint>
票数 0
EN

Stack Overflow用户

发布于 2016-06-03 16:33:24

我也有同样的问题。我的*.css和*.js文件分别位于WebRoot/resources/cssWebRoot/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>

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36026023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档