Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Spring - interception de méthodes (POA)

2 réponses
Avatar
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

2 réponses

Avatar
Al
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).




Avatar
Julien Gallet
On 26 mai, 15:55, Yliur wrote:
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>