Как уже упоминалось, вы можете использовать @PostAuthorize
.
Например, если у вас есть сервисный метод, который возвращает DatabaseResource
, который имеет поля publicFlag
и owner
, следующий код выдаст AccessDeniedException
, если publicFlag == false
и owner != authentication.name
.
@PostAuthorize("returnObject.publicFlag == true
|| returnObject.owner == authentication.name")
public DatabaseResource returnResource() {
// load the resource...
return databaseResource;
}