Spring security spring安全过滤器链url模式匹配

Spring security spring安全过滤器链url模式匹配,spring-security,Spring Security,我是新来的春天安全。现在我正在阅读它的文档。我对其过滤链url模式有疑问: 如文件所述: 可以使用多个http元素为不同的URL模式定义不同的安全配置。每个元素在内部FilterChainProxy和应映射到它的URL模式中创建一个过滤器链。元素将按照声明的顺序添加,因此必须首先再次声明最特定的模式 它还举了一个例子: <!-- Stateless RESTful service using Basic authentication --> <http pattern=

我是新来的春天安全。现在我正在阅读它的文档。我对其过滤链url模式有疑问:

如文件所述:

可以使用多个http元素为不同的URL模式定义不同的安全配置。每个元素在内部FilterChainProxy和应映射到它的URL模式中创建一个过滤器链。元素将按照声明的顺序添加,因此必须首先再次声明最特定的模式

它还举了一个例子:

  <!-- Stateless RESTful service using Basic authentication -->
  <http pattern="/restful/**" create-session="stateless">
    <intercept-url pattern='/**' access='ROLE_REMOTE' />
    <http-basic />
  </http>

我不明白的是: 已经为http标记配置了URL模式“/restful/**”,这意味着所有匹配此模式的请求都将由此http标记内的筛选器链处理。但是,为什么它会给截取url标记提供一个“匹配所有”模式:“/**”

不是复制的吗

另外,如果真的想给出另一种模式,“/restful/**”不是更好吗?原因“/**”将匹配与“/restful/**”不匹配的URL,因此不由此筛选器链处理

  • 如果没有
    中的
    标记,此声明基本上表示任何人都可以访问
    /restful/**
    路径下的任何资源。此处的
    限制已分配
    角色\u REMOTE
    角色的用户的访问权限,这是完全不同的

  • 模式相对于封闭的
    元素模式,因此此声明不会拦截
    /restful/**
    路径之外的任何内容


  • 典型的模式是一个
    元素和多个
    元素位于不同的URL模式中。当您希望身份验证和访问控制表现不同时,其他
    元素可能会很有用,例如REST API端点的会话管理或身份验证失败处理程序。

    谢谢Spiff。因此,中的url模式用于身份验证,中的url模式相对于http中的url模式,用于授权。我说的对吗?url模式只是将应用此配置的根上下文;此元素可以配置身份验证以外的关注点。您应该看看XSD,看看还可以配置什么。主要用于授权,但也可用于为给定URL模式指定安全通道。