Spring Security/Технический обзор Spring Security: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 47:
 
== GrantedAuthority ==
Кроме получения "пользователя", еще одним важным методом, предоставляемым объектом <code>Authentication</code>, явлется <code>getAuthorities()</code>. Этот метод предоставляет массив объектов <code>GrantedAuthority</code>. Очевидно, что <code>GrantedAuthority</code> это полномочия, которые предоставляются доверителюпользователю. Такие полномочия (как правило называемые "роли"), как <code>ROLE_ADMINISTRATOR</code> или <code>ROLE_HR_SUPERVISOR</code>. Эти роли в дальнейшем настраиваются для веб-авторизации, авторизации методов и хранимых объектов. Другие части Spring Security способны интерпретировать эти полномочия, и ожидают их наличия. Объекты <code>GrantedAuthority</code> как правило загружаются с помощью <code>UserDetailsService</code>.
 
Обычно областью видимости для разрешений, выдаваемых объектами <code>GrantedAuthority</code>, является все приложение, а не отдельная предметная область. Таким образом, вы не можете иметь <code>GrantedAuthority</code>, который будет представлять собой разрешение для объекта <code>Employee</code> номер 54, потому что, если будут существовать тысячи таких полномочий, то память быстро кончится (или, по крайней мере, приведет к тому что идентификация пользователя будет занимать слишком много времени). Конечно Spring Security спроектирована так, чтобы удовлетворять самым широким потребностям, но для этих целей лучше воспользоваться специальными возможностями, которые предоставляются для обеспечения безопасности бизнес-объектов.