Zdravím konferenci.

Začínáme s Acegi, konkrétně s chráněním metod aplikační vrstvy pomocí 
MethodSecurityInterceptor. Není mi jasné, jak postupovat v případě potřeby 
chránit metody definované v předkovi (a to chránit v kontextu potomka).

class Predek {
    public void foo() {
    }
}

class Potomek1 extends Predek {
}

class Potomek2 extends Predek {
}

A teď potřebuju, aby k metodě foo() Potomka1 měla přístup ROLE_1 a k 
metodě foo() Potomka2 ROLE_2.

Níže uvedená konfigurace neprojde - foo je očekávána pouze na úrovni 
Predka (kde ale nemůžu rozlišit ten kontext).
 <property name='objectDefinitionSource'>
            <value>
                (..).Potomek1.foo=ROLE_1
                (..).Potomek2.foo=ROLE_2 
            </value>
       </property>

Máte nějaký tip jak to elegantně vyřešit?
Teď mě to nutí foo znovu deklarovat v Potomcích (resp. v jejich rozhraní).

Díky
Jara 

Odpovedet emailem