0
我有場景,我有用戶,組和許多不同的元素(模型),這些元素屬於組,並且只能由具有活動成員資格的組中的用戶訪問。我有許多屬於組的模型。如何根據用戶和目標元素GROUP_ID授權操作?
所以基本上不知何故,我需要檢查用戶和目標元素具有相同的GROUP_ID
如何可以使用Spring Security做了什麼? 我正在尋找類似的情況,但我還沒有找到,即使我是,很確定這是相當常見的用法。
我有場景,我有用戶,組和許多不同的元素(模型),這些元素屬於組,並且只能由具有活動成員資格的組中的用戶訪問。我有許多屬於組的模型。如何根據用戶和目標元素GROUP_ID授權操作?
所以基本上不知何故,我需要檢查用戶和目標元素具有相同的GROUP_ID
如何可以使用Spring Security做了什麼? 我正在尋找類似的情況,但我還沒有找到,即使我是,很確定這是相當常見的用法。
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,則調用它: