1.怀疑是某个filter进行了拦截
人工排查了各个Filter,怀疑可能是漏了,
使用jvisualvm
对该程序进行dump
分析其中的filter相关的对象,但是没有找到
然后想一下,一个http请求的过程,
tomcat -> engine -> host -> context -> wrapper -> ApplicationFilterChain(各种filter) ->
springframework.web.servlet(DispacherServlet.doDispatch) -> springmvc(invokeAndHandler) -> advice -> aop -> invoke 对应的方法
2.通过对DispacherServlet
的断点,发现并没有进入
org.springframework.web.servlet.DispatcherServlet#doDispatch
3.于是在 filter 链中去找,发现在DefaultLoginPageGeneratingFilter
中返回了登陆页面, 这个是security包中的类,于是去查找对应的解决方法,禁用security可以避免登陆页面的出现。
可以配置
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
或者
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })