Авторизація та автентифікація
Авторизація – процес перевірки прав користувача на здійснення певних дій у комп'ютерній системі або на вебресурсі, результатом якого може бути дозвіл або відмова у проведенні операцій.
Автентифікація – перевірка автентичності наданого користувачем ідентифікатора.
Автентифікація передує авторизації
Voters, Filters, Chains
Успішна автентифікація -> Авторизація
AccessDecisionManager – головна стратегія авторизації.
Має 3 реалізації. Кожна з них делегує в ланцюжок AccessDecisionVoter.
В основному використовується реалізація за замовчуванням - AffirmativeBased.
Реалізація, яка надає доступ, якщо будь-який з AccessDecisionVoter повернув позитивну відповідь.
У Web безпека за допомогою Spring Security ґрунтується на Servlet Filters.
Spring Security представлений у вигляді одного фільтру в ланцюзі, але всередині містить додаткові фільтри
FilterChainProxy може містити в собі кілька ланцюжків фільтрів.
Безпека на рівні методів
Наявна можливість забезпечити безпеку на рівні методів. Якщо доступ не буде надано, то буде повернуто виняток
AccessDeniedException замість виконання методу.
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private final PersonDetailsService personDetailsService;
@Autowired
public SecurityConfig(PersonDetailsService personDetailsService) {
this.personDetailsService = personDetailsService;
}
Конфігурація та залежності
xmlns:security=http://www.springframework.org/schema/security
xsi:schemaLocation=http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
+
<artifactId>spring-security-web</artifactId>
+
<artifactId>spring-security-taglibs</artifactId>
Анотації
@PreAuthorize – анотація, яка обмежує доступ до методів перед їхнім викликом, спираючись на результат обчислення виразів.
@PostAuthorize – анотація, яка дозволяє викликати методи, але породжує виняток, якщо вираз повертає значення false.
@Secured – анотація, яка використовується для визначення привілею, який має мати користувач, щоб викликати анотований метод.
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓8. Spring Security
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
PRO. 1
Прізвище
Ім'я
По батькові
Стать
Посада
Дата народження
Вивести дані про інженерів, пенсійного віку (чоловікам більше 65-ти років, жінкам 60).
PRO. 2
No поїзда
Пункт і час прибуття
Пункт і час відбуття
Вивести всі відомості про поїзди, час перебування в дорозі яких перевищує 7 годин 20 хвилин.
Обчислити середню вартість усіх комп'ютерів і надрукувати найменування комп'ютерів та їхню середню вартість.
PRO. 3
Прізвище
Ім'я
По батькові
Посада
Зарплата
Дата народження
Вивести відомості про працівників, у яких зарплата вища за середню і вік менше 30-ти років.