我在使用用于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”的变体,但无济于事。
我确信这只是一个非常小的东西,我正在弄乱路径模式的结构。有什么帮助吗?
答案 0 :(得分:0)
#
是一个特殊字符。它表示片段的开头。
如果您要向包含#
的网址发送HTTP请求,则必须使用%23
对其进行网址编码。
在那种情况下,
registry.addInterceptor(new AdminInterceptor()).addPathPatterns("/#/admin");
假设你有,会有效
@RequestMapping("/#/admin")
或类似的映射处理程序方法。