spring handler mapping不是使用spring HandlerMappingIntrospector来匹配接收到的url吗?那么为什么mvc macther,它本身使用这个类,不能像handler mapping那样工作呢?例如,在@RequestMapping中,你不能把/放在地址前面,程序就能正常工作。但是在mvc matcher中,如果我们不把/放在地址前面,那个页面就不能被保护。为什么?
@RequestMapping("contact") // it works
但是:
http.csrf().disable()
.authorizeRequests()
.mvcMatchers("contact").authenticated() //if we do not put / at the first of the home it does not recohnize the address
1条答案
按热度按时间nvbavucw1#
构建RequestMappingInfo时,如果用户未指定“/”,则在PathPatternsRequestCondition构造函数中解析路径时,会自动将“/”附加到路径前面。源代码如下:
这将导致“/contact”与“contact”不匹配