2011-10-27 20 views
20

Tôi muốn cho phép truy cập vào một phương pháp cụ thể cho nhiều nhóm người dùng. Có thể trong Spring Security 3.x để làm một điều như vậy bằng cách sử dụng chú thích @Secured không? Xem xét hai nhóm (vai trò) OPERATOR và USER, mã này có hợp lệ không: Có nhiều vai trò được phép trong chú thích @Secured với Spring Security

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

Trả lời

34

Bạn sắp hoàn tất. Theo cú pháp, bạn cần viết như sau:

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

Điều này là do bạn đang cung cấp nhiều giá trị cho một thuộc tính mảng duy nhất của chú thích. (Các trường hợp đặc biệt cú pháp Java truyền trong một giá trị duy nhất, nhưng bây giờ bạn cần thực hiện nó "đúng".)

+0

... và cụ thể, đây là một (bao gồm) 'OR', đúng? Bạn sẽ được ủy quyền nếu bạn là ROLE_OPERATOR, _or_ một ROLE_USER, _or_ cả hai. Nó không phải là 'AND'. – SusanW

13

@Donal Fellows trả lời là đúng cho các ứng dụng Spring. Tuy nhiên, nếu bạn đang làm việc trong Grails, bạn cần phải sử dụng cú pháp Groovy cho các danh sách để mã trông như thế này

@Secured(["ROLE_OPERATOR", "ROLE_USER"]) 
public void doWork() { ... } 
Các vấn đề liên quan