2011-10-27 21 views
20

ile birden çok role izin verilir Birden fazla kullanıcı grubuna belirli bir yönteme erişim izni vermek istiyorum. Spring Security 3.x'te @Secured annotation kullanarak böyle bir şey yapmak mümkün mü? OPERATÖR ve KULLANICI olmak üzere iki grup (roller) düşünün: bu kod geçerli olacaktır: @Stoplu ek açıklamada Yaylı Güvenlik

 
    @Secured("ROLE_OPERATOR", "ROLE_USER") 
    public void doWork() { 
     // do useful processing 
    } 

cevap

34

Neredeyse oradasınız. Sözdizimsel, bu gibi yazmak gerekir: Eğer ek açıklama tek dizi öznitelik için birden fazla değer tedarik çünkü

@Secured({"ROLE_OPERATOR", "ROLE_USER"}) 
public void doWork() { ... } 

budur. (Java sözdiziminde özel durumlar tek bir değere teslim edilir, ancak şimdi bunu yapmanız gerekir "düzgün".)

+0

gibi görünecektir ... ve spesifik olmak gerekirse, bu bir (dahil) 'OR' yani listeleri için Groovy sözdizimi kullanmak gerekir, sağ? Bir ROLE_OPERATOR, _or_ a ROLE_USER, _or_ iseniz, yetkili olacaksınız. Bu bir AND değil. – SusanW

13

@Donal Fellows, Spring uygulamaları için doğrudur. Ancak, Grails çalışıyorsanız, kod bu

@Secured(["ROLE_OPERATOR", "ROLE_USER"]) 
public void doWork() { ... } 
İlgili konular