Spring Interceptor路径模式问题

时间:2014-07-10 15:09:49

标签: java spring interceptor

我在使用用于Spring Interceptors的URL模式时遇到了一些麻烦。

我是以编程方式添加路径模式,而不是在XML中添加路径模式,但根据我的理解,它应该工作相同。我这样添加它:

public void addInterceptors(InterceptorRegistry registry) {
    super.addInterceptors(registry);
    registry.addInterceptor(new AdminInterceptor()).addPathPatterns("/admin.html");
    registry.addInterceptor(getRateLimitInterceptor());
}

如果您不添加任何路径模式,则它适用于每个URL。

我希望它适用于以下网址(假设它在本地运行):

localhost:8080/webapp/#/admin

该页面通过拉出来获取其内容:

localhost:8080/webapp/admin.html

所以我不完全确定我需要阻止哪个URL?理想情况下,我会在请求URI中使用“admin”阻止任何内容,但我不确定这是否可行。我尝试了“#/ admin”“/#/ admin”“admin”“/ admin”的变体,但无济于事。

我确信这只是一个非常小的东西,我正在弄乱路径模式的结构。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

在URL中使用时,

#是一个特殊字符。它表示片段的开头。

如果您要向包含#的网址发送HTTP请求,则必须使用%23对其进行网址编码。

在那种情况下,

registry.addInterceptor(new AdminInterceptor()).addPathPatterns("/#/admin");
假设你有

会有效

@RequestMapping("/#/admin")

或类似的映射处理程序方法。