2017-03-13 117 views
0

我有場景,我有用戶,組和許多不同的元素(模型),這些元素屬於組,並且只能由具有活動成員資格的組中的用戶訪問。我有許多屬於組的模型。如何根據用戶和目標元素GROUP_ID授權操作?

所以基本上不知何故,我需要檢查用戶和目標元素具有相同的GROUP_ID

如何可以使用Spring Security做了什麼? 我正在尋找類似的情況,但我還沒有找到,即使我是,很確定這是相當常見的用法。

回答

0

Spring Security提供了一個完整的授權框架:
http://docs.spring.io/spring-security/site/docs/current/reference/html/el-access.html

它使用@PreAuthorize之類的註釋來檢查是否允許通過身份驗證的用戶調用該方法。

這裏與彈簧方法hasRole:

@PreAuthorize("hasRole('USER')") 
public void create(Contact contact); 

如果您授權邏輯,不能僅使用默認春方法來處理的,您可以創建自定義的實現:

@PreAuthorize("@patientAuth.readObject(authorization,#patientId)") 
    public Patient getPatient(Long patientId) { 
     Patient patient = patientDao.findOne(patientId); 
     if(patient==null) throw new NotFoundException("Patient not found"); 
     return patient; 
    } 

的方法getPatient只能如果方法patientAuth.readObject返回true,則調用它:

相關問題