首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javaee模式"/“匹配所有内容,而"/*”应该是这样,而不是"/“。

javaee模式"/“匹配所有内容,而"/*”应该是这样,而不是"/“。
EN

Stack Overflow用户
提问于 2012-05-03 16:23:07
回答 1查看 1.6K关注 0票数 2
代码语言:javascript
复制
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Common pages</web-resource-name>
      <url-pattern>/test1.html</url-pattern>
      <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>MY_GROUP</role-name>
    </auth-constraint>
  </security-constraint>

正如预期的那样,在此约束下,页面/test1.html需要身份验证,而页/test2.html不需要身份验证。

代码语言:javascript
复制
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Common pages</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>MY_GROUP</role-name>
    </auth-constraint>
  </security-constraint>

正如预期的那样,在此约束下,所有页面都需要身份验证,包括/test2.html。

代码语言:javascript
复制
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Common pages</web-resource-name>
      <url-pattern>/</url-pattern>
      <url-pattern>/test1.html</url-pattern>
      <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>MY_GROUP</role-name>
    </auth-constraint>
  </security-constraint>

有了这个约束,我希望页面/test1.html和/需要身份验证,但是页/test2.html不应该需要身份验证。

然而,事实证明,/test2.html也需要身份验证。

问题1.这正常吗?为甚麽这样呢?

问题2.在规范中,url模式"/“是否等同于"/*"?Java规范2.5:http://goo.gl/UxoPL

问题3.我如何知道根页"/“需要身份验证,而不是其他页面?

ps:我使用的是jboss 4.3。

EN

回答 1

Stack Overflow用户

发布于 2012-05-19 17:45:48

/是一种特殊的模式,它匹配的所有东西都是,而不是,任何更具体的servlet模式都是在同一个say应用程序中匹配的,比如/app/**.do等等。默认情况下,这是由servlet容器自己的默认servlet处理的,并且通常用于静态资源,如普通的HTML/CSS/JS/映像文件,不会为这些文件调用任何一个webapp自己的servlet。例如,Tomcat有用于此目的的DefaultServlet

/*是一个过于通用的模式,它匹配everything,包括“默认servlet”请求。此URL模式通常只供过滤器使用,而不是由servlet使用。否则,您将不得不重新创建servlet容器自己的默认servlet来处理静态文件,比如普通的HTML/CSS/JS/映像文件。

至于您的具体功能需求,您需要为/指定一个欢迎文件

代码语言:javascript
复制
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

然后将安全约束URL模式放在/index.html上。

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

https://stackoverflow.com/questions/10435437

复制
相关文章

相似问题

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