Pour une raison quelconque, l'objet authoritie que j'attendais de ma méthode vote() est une instance de FilterInvocation et j'avais besoin d'une méthode MethodInvocation. Je n'arrive pas à comprendre pourquoi cela arrive.Sécurité de printemps: comment utiliser MethodInvocation au lieu de FilterInvocation
Mon web.xml est le suivant:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
mon applicationContext:
<b:bean id="_methodDefinitionSourceAdvisor" class="org.springframework.security.intercept.method.aopalliance.MethodDefinitionSourceAdvisor">
<b:constructor-arg value="_methodSecurityInterceptor" />
<b:constructor-arg ref="_delegatingMethodDefinitionSource" />
</b:bean>
où MethodSecurityInterceptor est défini comme ceci:
<b:bean id="_methodSecurityInterceptor" class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
...
</b:bean>
et delegatingMethodDefinitionSource, comme ceci:
<b:bean id="_delegatingMethodDefinitionSource" class="org.springframework.security.intercept.method.DelegatingMethodDefinitionSource">
...
</bean>
Une idée? Je pourrais vraiment utiliser un peu d'aide!
Pouvez-vous également ajouter le code? – Gandalf
En fait, je viens de découvrir ce qui s'est passé. Quelqu'un a retiré le tag aspectj: autoproxy d'un de nos fichiers de configuration xml. Pour cette raison, le printemps n'instanceait pas correctement nos beans, laissant l'intercepteur à la valeur par défaut: FilterInterceptor. Merci d'avoir essayé d'aider, de toute façon ... Je posterai la réponse ici dès que possible. –