Задача

1. Създайте функционалности за регистрация и вписване на потребители в приложението за управление на задачи. Следвайте следните стъпки:

a. Създайте следните entity класове:

· User – id, име, потребителско име, парола, електронна поща;

· Role – id, наименование.

Задайте с анотации връзка между двете същности много към много (М:М). Създайте таблиците като стартирате приложението.

b. Добавете два repository слоя за управление на потребителите и ролите. Добавете методи за намиране на потребител по потребителско име (както и булев метод, който да установява дали подобно съществува) и за намиране на роля по име.

c. Създайте клас, имплементиращ интерфейса UserDetailsService. Имплементирайте метода loadUserByUsername(String username), като нека той да връща UserDetails обект, съдържащ данните на потребителя и неговите роли;

d. Създайте конфигурационен клас (с анотации @Configuration, @EnableWebSecurity и @EnableMethodSecurity), който да инжектира имплементацията на UserDetailsService и да конфигурира AuthenticationManager и PasswordEncoder. Да включва SecurityFilterChain метод, който да задава свободен достъп до ресурсите, свързани с регистрация, вписване и изход, както и изискване за удостоверяване при всички останали.

e. Добавете сервизен слой, контролер и нужните DTO за реализация на логиката по регистрация, вписване и изход.

f. Направете така, че задачите да могат да се добавят, редактират и изтриват единствено от потребители с роля на администратор.

Last updated