2014-10-04 70 views
0

我使用Spring Security和@PreAuthorize來保護方法。我想要做的事,如:將變量傳遞給註釋

控制器:

@PreAuthorize(SampleStaticClass.STATIC_FINAL_FIELD) 
void someMethod() {} 

服務:

// SampleStaticClass 
public static final String STATIC_FINAL_FIELD = someService().getThisFieldFromDatabase(); 

但這需要常量表達式。任何解決方案

回答

0

可以或者(a)硬編碼值之間添加映射並存儲在DB或(b)取溶液從this thread

@PreAuthorize("@mySecurityService.hasCustomPermission()") 
some method() {} 

當然,我更喜歡的第一個,因爲它是簡單的實現和支持。