Salut,
J'ai utilisé Spring Security 2 pour sécuriser un ensemble de services (disponible via remoting). La config est plutôt simple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<!-- activer la sécurisation des méthodes via l'annotation @Secured -->
<sec:global-method-security
secured-annotations="enabled" access-decision-manager-ref="accessDecisionManager" />
<!-- définition des intercepteurs (voters) -->
<bean id="accessDecisionManager" class="org.springframework.security.vote.UnanimousBased">
<property name="decisionVoters" >
<list>
<bean class="temp.TestVoter" /></bean>
</list>
</property>
</bean>
<!-- définition des post-processeurs -->
<bean class="test.YouOwnAfterInvocationProvider">
<sec:custom-after-invocation-provider />
</bean> |
Et voilou.
Je n'en suis pas sûr, mais je crois "<sec:custom-after-invocation-provider />" n'est pas encore fourni dans la distribution officielle de Spring Security (2.0.4, mais ça devrait être dans la 2.5). Dans le schemaLocation, mets cette uri :
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd
[Mode hors Sujet]
D'ailleurs, je trouve que cette solution, bien qu'elle fonctionne, est tordu : pourquoi ne pas simplement faire comme pour les voters ? i.e. via une property, du genre :
1 2
| <sec:global-method-security
secured-annotations="enabled" access-decision-manager-ref="accessDecisionManager" after-invocation-provider-ref="..." /> |
:p
Partager