From a08e69ee7798fc7dbefedfafbee8689777a9c49e Mon Sep 17 00:00:00 2001 From: Danila_Mochalov Date: Wed, 3 May 2023 02:24:12 +0400 Subject: [PATCH] Lab 6 MVC + SPA --- build.gradle | 2 + data.mv.db | Bin 151552 -> 114688 bytes front/vue_front/src/App.vue | 51 +++++++- front/vue_front/src/components/Comment.vue | 111 ++++++++++++++++-- front/vue_front/src/components/Login.vue | 62 ++++++++++ front/vue_front/src/components/Post.vue | 36 +++++- front/vue_front/src/components/Profile.vue | 61 +++++++++- front/vue_front/src/main.js | 9 +- .../lab1/SecurityConfiguration.java | 31 ++++- .../webproglabs/lab1/WebConfiguration.java | 16 ++- .../lab1/lab34/OpenAPI30Configuration.java | 28 +++++ .../lab34/controller/ProfileController.java | 30 +++++ .../lab1/lab34/jwt/JwtException.java | 11 ++ .../webproglabs/lab1/lab34/jwt/JwtFilter.java | 72 ++++++++++++ .../lab1/lab34/jwt/JwtProperties.java | 27 +++++ .../lab1/lab34/jwt/JwtProvider.java | 107 +++++++++++++++++ .../lab1/lab34/services/ProfileService.java | 36 +++++- src/main/resources/application.properties | 2 + 18 files changed, 660 insertions(+), 32 deletions(-) create mode 100644 front/vue_front/src/components/Login.vue create mode 100644 src/main/java/com/webproglabs/lab1/lab34/OpenAPI30Configuration.java create mode 100644 src/main/java/com/webproglabs/lab1/lab34/jwt/JwtException.java create mode 100644 src/main/java/com/webproglabs/lab1/lab34/jwt/JwtFilter.java create mode 100644 src/main/java/com/webproglabs/lab1/lab34/jwt/JwtProperties.java create mode 100644 src/main/java/com/webproglabs/lab1/lab34/jwt/JwtProvider.java diff --git a/build.gradle b/build.gradle index a2e618d..4367056 100644 --- a/build.gradle +++ b/build.gradle @@ -34,6 +34,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' + implementation 'com.auth0:java-jwt:4.4.0' + } tasks.named('test') { diff --git a/data.mv.db b/data.mv.db index de4ff61e1f970ee1829930bb9f9727503d9b8ce7..76cf63efd8ec0b131e032eacef605ae035b93b37 100644 GIT binary patch literal 114688 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 literal 151552 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 Лабораторная работа 4

-

- Профили - Лента +

+ Профили + Лента + Выход

diff --git a/front/vue_front/src/components/Comment.vue b/front/vue_front/src/components/Comment.vue index 0786088..ac82608 100644 --- a/front/vue_front/src/components/Comment.vue +++ b/front/vue_front/src/components/Comment.vue @@ -1,7 +1,7 @@