Данные весны Остальные данные о разделах

Мне было интересно, если бы кто-то использовал Spring Security с отдыхом данных Spring, можно ли было бы разделить данные, чтобы пользователь REST API мог только сказать данные, относящиеся к ним?

В частности, если предположить, что данные Spring ne04j выставлены через HATEOAS с безопасностью Spring. Если клиенту предоставляется токен oauth2, можно ли программно использовать этот токен только для предоставления пользователю подмножества графа, который он создал или связан с ним?

Например. Банк выставляет некоторые действия на счете. Клиенту предоставляется токен oauth. Клиент должен иметь возможность видеть и выполнять операции HTTP только для своей учетной записи, а не для любого другого пользователя.

По умолчанию, когда у вас есть доступ к конечной точке HATEOAS, вы можете видеть все данные. Можно ли как-то ограничить это, не поднимая слишком много тяжестей?


person Marc Byfield    schedule 11.06.2015    source источник


Ответы (1)


Вы можете использовать @PreAuthorize для проверки авторизации перед операцией и @PostFilter для фильтрации возвращаемых данных.

Некоторые примеры:

@PreAuthorize("#contact.name == authentication.name")
public void doSomething(Contact contact);

@PostFilter ("filterObject.owner == authentication.name")
public List<Book> getBooks();
person George    schedule 06.10.2015
comment
Ого, уже почти потерял надежду на это. Проверим. Если это соответствует моим требованиям, я приму ответ - person Marc Byfield; 06.10.2015
comment
Посмотрите этот задокументированный пример, предоставленный командой Spring Data: github .com/spring-projects/spring-data-examples/tree/master/ - person George; 07.10.2015