spring4 HandlerMethodArgumentResolver不生效

在Spring4中配置自定义HandlerMethodArgumentResolver时遇到不生效的问题,原因是配置的`<mvc:annotation-driven validator="validator"/>`与自定义的ArgumentResolver配置冲突。注释掉该段配置后,自定义的`AuthenticationArgumentResolver`和`AccountArgumentResolver`开始正常工作。此外,未配置解析器的UserAuthor类因实现了Principal接口,通过SecurityContextHolder获取权限信息,导致逻辑上看似正常工作。
摘要由CSDN通过智能技术生成
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()方法,有兴趣的自己看码,懒得写了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值