Spring Security и правильный способ убедиться, что пользователь имеет доступ к ресурсу - PullRequest
2 голосов
/ 06 февраля 2012

Я использую Spring Security, которая прекрасно работает, чтобы убедиться, что пользователь имеет определенную роль, прежде чем получить доступ к ресурсу. Но теперь мне нужно проверить что-то немного другое:

`/product/edit/{productId}`

Как лучше всего убедиться, что вошедший в систему пользователь «владеет» productId? Мои бизнес-отображения обрабатывают отношения (a user имеет список products). Мне нужно убедиться, что этот продукт принадлежит пользователю, и, следовательно, они могут его редактировать.

Я знаю, как получить доступ к productId и зарегистрированному пользователю как в контроллере, так и в перехватчике. Я не верю, что эта логика принадлежит контроллеру вообще. Перехватчик кажется лучше, но мне было интересно, есть ли у Spring Security «принятый» способ справиться с этой ситуацией.

1 Ответ

1 голос
/ 07 февраля 2012

Да, в Spring вы можете реализовать это, внедрив списки контроля доступа. Объявление ACL определяет разрешения для отдельных объектов на пользователя. Как только вы настроите все, например, записи acl в вашей базе данных и логике, вы можете использовать аннотации SpEL и @PostFilter для управления списком объектов, возвращаемых пользователю.

Документация по безопасности Spring

Связанный:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...