Ochrana přístupu k metodám servisních objektů

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.

Komentáře

Téma neobsahuje žádné komentáře.

Vložit komentář

Můžete používat značkovací jazyk Texy!


Jméno:
E-mail:
Url:
Komentář:
1 + 2 =
 
MoroSystems, s.r.o.