Budeme-li chtít naši aplikaci rozšířit například i o rozhraní webových služeb, nebude nám ochrana přístupu k webovým zdrojům příliš platná. Při zabezpečení aplikace budeme muset sestoupit poněkud hlouběji do jejích útrob a to až na úroveň servisní vrstvy a metod jejích objektů. Navíc je-li bezpečnost aplikace a dat, která má k dispozici, důležitým obchodním požadavkem, pak je vhodné kombinovat řízení přístupu k webovým zdrojům s řízením přístupu k servisní vrstvě i u aplikací pouze s webovým rozhraním.
Pro řízení přístupu k metodám servisních objektů je rámcem Acegi Security™ využito AOP služeb rámce Spring™, čili následující příklad je opakováním k tématu kapitoly 6 (viz 4 – „Rámec Spring - AOP“) a zároveň rozšířením příkladu z předchozího oddílu.
<bean id="methodInvocationInterceptor"
class="
org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="objectDefinitionSource">
<value>
cz...MailManager.sendActivationEmail=ROLE_ADMIN
cz...MailManager.sendEmailWithNewCompetitorLoginData=ROLE_ADMIN,ROLE_CLIENT
</value>
</property>
</bean>
<bean id="mailManager"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces"
value="cz.morosystems.sportportal.managers.MailManager" />
<property name="target" ref="mailManagerTarget"/>
<property name="interceptorNames">
<list>
<value>methodInvocationInterceptor</value>
<value>sampleAdvisor</value>
</list>
</property>
</bean>
Druhá deklarace se liší od té uvedené v příkladu
v oddíle 6.4 (viz „AOP proxy“) pouze tím, že
AOP proxy objekt mailManager
obsahuje navíc odkaz na AOP pokyn
methodInvocationInterceptor. Tento pokyn definuje
přístupové atributy pro jednotlivé chráněné cíle, v tomto případě pro
jednotlivé metody servisního objektu MailManager.
Při každém volání těchto metod tedy pokyn ve spolupráci s asociovanými
objekty authenticationManager a
accessDecisionManager rozhodne o povolení či
zamítnutí přístupu k nim.