Opublikowany w SmartHouse, Spring

Spring security

W swojej aplikacji mam na razie 2 role:

  • USER
  • ADMIN

Gdzie wszystkie funkcje USER są dostępne dla ADMIN (include).

Można to zrealizować z wykorzystaniem:
Hierarchical Roles

JWT – JSON Web Token i Spring Security

Tutaj jest fajnie opisane jak zintegrować JWT ze Spring Security: https://www.bezkoder.com/spring-boot-react-jwt-auth/

Jeśli chodzi o reactjs to z użyciem CONTEXT (https://www.freecodecamp.org/news/react-context-for-beginners/) i obsługa opisana tutaj:

https://makinhs.medium.com/configuring-a-react-app-to-handle-authentication-without-redux-with-hooks-4424e9c30d73

Tutaj strona, którą czytam (do Reactjs):

https://www.learmoreseekmore.com/2022/09/reactjs-v18-authentication-with-jwt-accesstoken-and-refresh-token.html

i może jeszcze ta:

https://www.toptal.com/spring/spring-security-tutorial

Przygotowanie template strony React

  1. Używam BrowserRouter (opis: https://ibaslogic.com/routing-with-react-router/) zeby mozna bylo przechodzic z uzyciem url na rozne podstrony
  2. Instaluję JWT Decode Library: npm i jwt-decode
  3. Instaluję Axios Library: npm i axios
  4. Informacje autentykacyjne muszą być widoczne we wszystkich komponentach. Do tego celu używam ReactJS Context API https://hy.reactjs.org/docs/context.html

Zmiany w Spring backend

Zgodnie z video:

Tworzę klasę JwtService, przy okazji: adnotacja @Value(„${jwt.signingKey}”) przed nazwą metody lub zmiennej, pozwala na przypisanie jej wartości z pliku application.properties.

  1. Instalacja pluginu eclipse: https://projectlombok.org/setup/eclipse, zgodnie z : https://www.youtube.com/watch?v=UKQdv3cu2Ok&ab_channel=InterviewMania
  2. Nazwy ról muszą sie zaczynać od (prefix): ROLE_

Globalne ustawienie CORS:

Dodaj komentarz