spring4 HandlerMethodArgumentResolver不生效
配置了一个Spring http参数解析器,发现不生效,debug也进不来,
后来看原码,debug源码,发现下面这个配置没有生效:
<bean class="org.springframework.web.servlet.mvc.
method.annotation.RequestMappingHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="com.geek.ppcp.web.security.
AuthenticationArgumentResolver"/>
<bean class="com.geek.xray.web.helper.
AccountArgumentResolver"/>
</list>
</property>
</bean>
发现在配置文件中还有如下一段配置:
<mvc:annotation-driven validator="validator"/>
这两段配置有冲突,注掉下面这个,就正常了。
另外,有一点奇怪的是,我实现了一个登陆验证参数,叫UserAuthor,没有参数解析器,
居然也正常能正常登陆,检查权限也正常,这不合逻辑,debug进去看了一下,
发现UserAuthor实现了java的Priciple接口,
它直接从SecurityContextHolderAwareRequestWrapper
.getUserPrincipal()方法,有兴趣的自己看码,懒得写了。