Spring MVC 处理程序拦截器,带有 pathparam 的排除路径模式

标签 spring spring-mvc

我已经编写了一个 HandlerInterceptorAdapter 实现,并希望排除在注册 token 时对用户进行身份验证和刷新用户的路径模式,thje 资源的 URLS 主要将电子邮件地址作为路径参数,以下哪个代码片段是有效的这样做的表格

 @Override
    public void addInterceptors(InterceptorRegistry registry) {
        super.addInterceptors(registry);
        registry.addInterceptor(new AuthorizationInterceptor()).excludePathPatterns("/somepath/*/someresource/*");
    }

或者
@Override
public void addInterceptors(InterceptorRegistry registry) {
    super.addInterceptors(registry);

    registry.addInterceptor(new AuthorizationInterceptor()).excludePathPatterns("/somepath/{email}/someresource/*");
}

编辑:::

使用 PatternMatcher 增强了代码,仍然无法正常工作
 @Override
    public void addInterceptors(InterceptorRegistry registry) {
        super.addInterceptors(registry);

        registry.addInterceptor(new AuthorizationInterceptor())
                .excludePathPatterns(
                        "/somepath",
                        "/somepath/*/authenticate",
                        "somapath/*/someresource/verify"
                ).pathMatcher(new AntPathMatcher());
    }

最佳答案

尝试这个:

@Override
public void addInterceptors(InterceptorRegistry registry) {
    super.addInterceptors(registry);

    registry.addInterceptor(new AuthorizationInterceptor())
            .excludePathPatterns(
                    "/somepath",
                    "/somepath/**/authenticate",
                    "somapath/**/someresource/verify"
            ).pathMatcher(new AntPathMatcher());
}

映射使用以下规则匹配 URL:
? matches one character
* matches zero or more characters
** matches zero or more directories in a path

关于Spring MVC 处理程序拦截器,带有 pathparam 的排除路径模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33864252/

相关文章:

java - ReloadableResourceBundleMessageSource中setDefaultEncoding的作用是什么

spring - 如何使用 Spring MVC 使用 REST URL?

c# - 是否有等效于 C#/.NET 的 Java Spring MVC 样式 url 映射?

java - swagger ui 不从通用字段中选取 apimodelproperty 注释

java - OptimisticLockingFailureException : Attempt to update step execution id=1 with wrong version (1),,其中 Spring Batch 代码中的当前版本为 2

spring - 事件驱动的设计和域驱动的设计微服务之间有什么区别?

html - spring mvc资源无法访问或不工作

java - Spring 安全 : Cannot determine value type from string 'admin'

java - 无法改变背景 Swing 的颜色

java - @ConfigurationProperties在spring中的使用