Spring - interception de méthodes (POA)

Le
Yliur
Bonjour

Est-ce que quelqu'un connaît bien le conteneur web Spring ?
Je m'intéresse aux capacité de Programmation Orientée Aspect de Spring. Il s'agit d'intercepter l'exécution de certaines méthodes pour exécuter des pré/post-traitements.
Il s'agit ici de valider l'exécution de telle ou telle méthodes pour l'utilisateur courant. En d'autres termes de vérifier avant d'autoriser l'exécution d'une méthode que
l'utilisateur a le droit de la faire.

Spring possède un composant de sécurité, Acegi Security, qui permet d'établir des filtres de sécurité, mais je n'ai pas réussi à faire fonctionner les interceptions de méthodes.
Pour ceux qui se sont déjà penchés sur la question, j'essaie de faire fonctionner la création automatique d'envoloppeurs (proxy), pour déclarer des choses de la forme
paquetage.Classe.charger*=ROLE_ADMIN (pour dire que les méthode de la forme "charger*" de la classe "Classe" ne sont autorisées que pour l'administrateur).

Est-ce que quelqu'un a un exemple de configuration d'Acegi Security pour l'interception de méthodes ? Ou même un exemple utilisant directement Spring et permettant d'intercepter
des méthodes définies par un modèle de nom comme dans l'exemple ci-dessus ? Notez que j'ai déjà réussi à faire du filtrage sur les URL, donc la gestion de l'authentification est en
place, je n'ai plus besoin que de configurer cette interception de méthodes.

Les classes qui ont l'air impliquées :
- BeanNameAutoproxyCreator
- MethodDefinitionSourceAdvisor
- DefaultAdvisorAutoProxyCreator

Merci

Yliur
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Al
Le #6727041
a notet que ACEGI vient d'être renommé et amélioré (spring security ou
un truc du style) et que la config devrait être plus simple...

ya des articles sur javalobby

Bonjour


Spring possède un composant de sécurité, Acegi Security, qui permet
d'établir des filtres de sécurité, mais je n'ai pas réussi à faire
fonctionner les interceptions de méthodes. Pour ceux qui se sont déjà
penchés sur la question, j'essaie de faire fonctionner la création
automatique d'envoloppeurs (proxy), pour déclarer des choses de la forme
paquetage.Classe.charger*=ROLE_ADMIN (pour dire que les méthode de la
forme "charger*" de la classe "Classe" ne sont autorisées que pour
l'administrateur).




Julien Gallet
Le #7079321
On 26 mai, 15:55, Yliur
Bonjour

Est-ce que quelqu'un connaît bien le conteneur web Spring ?
Je m'intéresse aux capacité de Programmation Orientée Aspect de Spr ing. Il s'agit d'intercepter l'exécution de certaines méthodes pour ex écuter des pré/post-traitements.
Il s'agit ici de valider l'exécution de telle ou telle méthodes pour l'utilisateur courant. En d'autres termes de vérifier avant d'autoriser l 'exécution d'une méthode que
l'utilisateur a le droit de la faire.

Spring possède un composant de sécurité, Acegi Security, qui permet d'établir des filtres de sécurité, mais je n'ai pas réussi à fai re fonctionner les interceptions de méthodes.
Pour ceux qui se sont déjà penchés sur la question, j'essaie de fai re fonctionner la création automatique d'envoloppeurs (proxy), pour déc larer des choses de la forme
paquetage.Classe.charger*=ROLE_ADMIN (pour dire que les méthode de la forme "charger*" de la classe "Classe" ne sont autorisées que pour l'adm inistrateur).

Est-ce que quelqu'un a un exemple de configuration d'Acegi Security pour l'interception de méthodes ? Ou même un exemple utilisant directement S pring et permettant d'intercepter
des méthodes définies par un modèle de nom comme dans l'exemple ci- dessus ? Notez que j'ai déjà réussi à faire du filtrage sur les URL , donc la gestion de l'authentification est en
place, je n'ai plus besoin que de configurer cette interception de méth odes.

Les classes qui ont l'air impliquées :
   - BeanNameAutoproxyCreator
   - MethodDefinitionSourceAdvisor
   - DefaultAdvisorAutoProxyCreator

Merci

Yliur




Salut, essaie cela :

<bean id="attributes"
class="org.acegisecurity.annotation.SecurityAnnotationAttributes" />

<bean id="objectDefinitionSource"

class="org.acegisecurity.intercept.method.MethodDefinitionAttributes">
<property name="attributes"><ref local="attributes" /></property>
</bean>

<bean id="securityInterceptor"

class="org.acegisecurity.intercept.method.aopalliance.MethodSecurityInter ceptor">
<property name="validateConfigAttributes">
<value>false</value>
</property>
<property name="authenticationManager">
<ref local="authenticationManager"/>
</property>
<property name="accessDecisionManager">
<ref local="accessDecisionManager"/>
</property>
<property name="objectDefinitionSource">
<ref local="objectDefinitionSource"/>
</property>
</bean>

<bean id="autoproxy"

class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProx yCreator"></
bean>

<bean id="methodSecurityAdvisor"

class="org.acegisecurity.intercept.method.aopalliance.MethodDefinitionSou rceAdvisor"
autowire="constructor">
</bean>
Publicité
Poster une réponse
Anonyme