用于GET参数的Ant匹配器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于GET参数的Ant匹配器相关的知识,希望对你有一定的参考价值。

使用Java + Spring Boot,我正在尝试创建一个用于确认用户电子邮件的端点。

我生成和发送的链接是/confirm-email?id=x&token=xyztetc

但是,由于只允许在没有承载令牌的情况下访问/signup,链接将始终获得403响应。我试图添加/confirm-email?{id:.+}&{token:.+}被允许,但没有成功。

我100%确定正则表达式没有正确编写,但我找不到任何相关的Ant模式文档来检查。

答案

我不认为蚂蚁使用.来匹配任何角色,它使用?

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

另一答案

为了允许正则表达式匹配器,您必须使用.regexMatchers()而不是.antMatchers()

有关更多信息,请参阅此课程:

org.springframework.security.web.util.matcher.RegexRequestMatcher

在你的情况下会是这样的:

public class ServerSecurityAppConfig extends ResourceServerConfigurerAdapter {

    // ...

    private static final String[] UNAUTHENTICATED_ROUTES = new String[] {
            "/confirm-email?{.+}&{.+}",
    };


    @Override
    public void configure(final HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .regexMatchers( UNAUTHENTICATED_ROUTES ).permitAll()
                .anyRequest().access( myAppSecurityExpression );
    }

以上是关于用于GET参数的Ant匹配器的主要内容,如果未能解决你的问题,请参考以下文章

如何调试“类型X中的方法或匹配器不适用于参数”的错误?

用于 PC Mockito 模拟验证的自定义 Hamcrest 匹配器

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用

前端开发常用js代码片段

NDK: ant 错误 [javah] Exception in thread "main" java.lang.NullPointerException 多种解决办法(代码片段

[ jquery 文档处理 insertBefore(content) before(content|fn) ] 此方法用于把所有匹配的元素插入到另一个指定的元素元素集合的前面,实现外部插入(代码片段