From 5e5792f17c0babd729ee8b02f6073672e9ce3583 Mon Sep 17 00:00:00 2001 From: Florian THIERRY Date: Wed, 6 Dec 2023 14:09:23 +0100 Subject: [PATCH] Code moving and fix login component style. --- sportshub-application/pom.xml | 4 ---- .../security/JwtAuthenticationFilter.java | 3 ++- .../{ => security}/SecurityConfiguration.java | 5 +---- .../exposition/user/UserController.java | 4 ++++ .../app/components/login/login.component.html | 8 +++---- .../app/components/login/login.component.scss | 19 ++++++++++++++++ .../app/components/login/login.component.ts | 6 +++-- .../src/app/header/header.component.html | 4 ++-- .../src/app/header/header.component.scss | 8 ------- sportshub-gui/src/styles.scss | 22 +++++++++++++++++++ 10 files changed, 58 insertions(+), 25 deletions(-) rename {sportshub-application/src/main/java/org/sportshub/application => sportshub-exposition/src/main/java/org/sportshub/exposition/configuration}/security/JwtAuthenticationFilter.java (95%) rename sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/{ => security}/SecurityConfiguration.java (91%) diff --git a/sportshub-application/pom.xml b/sportshub-application/pom.xml index 0e82aa4..a1b2e6e 100644 --- a/sportshub-application/pom.xml +++ b/sportshub-application/pom.xml @@ -29,10 +29,6 @@ org.springframework.boot spring-boot-starter-security - - jakarta.servlet - jakarta.servlet-api - com.auth0 java-jwt diff --git a/sportshub-application/src/main/java/org/sportshub/application/security/JwtAuthenticationFilter.java b/sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/security/JwtAuthenticationFilter.java similarity index 95% rename from sportshub-application/src/main/java/org/sportshub/application/security/JwtAuthenticationFilter.java rename to sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/security/JwtAuthenticationFilter.java index 6508dd1..48ad255 100644 --- a/sportshub-application/src/main/java/org/sportshub/application/security/JwtAuthenticationFilter.java +++ b/sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/security/JwtAuthenticationFilter.java @@ -1,9 +1,10 @@ -package org.sportshub.application.security; +package org.sportshub.exposition.configuration.security; import java.io.IOException; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.util.ObjectUtils.isEmpty; +import org.sportshub.application.security.JwtService; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; diff --git a/sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/SecurityConfiguration.java b/sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/security/SecurityConfiguration.java similarity index 91% rename from sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/SecurityConfiguration.java rename to sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/security/SecurityConfiguration.java index 28ac4fd..5242f48 100644 --- a/sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/SecurityConfiguration.java +++ b/sportshub-exposition/src/main/java/org/sportshub/exposition/configuration/security/SecurityConfiguration.java @@ -1,10 +1,9 @@ -package org.sportshub.exposition.configuration; +package org.sportshub.exposition.configuration.security; import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.OPTIONS; import static org.springframework.http.HttpMethod.POST; import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS; -import org.sportshub.application.security.JwtAuthenticationFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; @@ -12,8 +11,6 @@ import org.springframework.security.config.annotation.method.configuration.Enabl import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; diff --git a/sportshub-exposition/src/main/java/org/sportshub/exposition/user/UserController.java b/sportshub-exposition/src/main/java/org/sportshub/exposition/user/UserController.java index 08ee226..4ed6f9a 100644 --- a/sportshub-exposition/src/main/java/org/sportshub/exposition/user/UserController.java +++ b/sportshub-exposition/src/main/java/org/sportshub/exposition/user/UserController.java @@ -2,6 +2,8 @@ package org.sportshub.exposition.user; import java.util.List; +import org.sportshub.application.security.annotation.AllowedToAdmins; +import org.sportshub.application.security.annotation.AllowedToAnonymous; import org.sportshub.application.user.UserUseCases; import org.sportshub.domain.user.model.User; import org.sportshub.domain.user.model.UserAuthenticationData; @@ -24,12 +26,14 @@ public class UserController { } @PostMapping("/login") + @AllowedToAnonymous public LoginResponse login(@RequestBody LoginRequest request) { UserAuthenticationData userAuthenticationData = userUseCases.authenticate(request.id(), request.password()); return new LoginResponse(userAuthenticationData); } @GetMapping + @AllowedToAdmins public List findAll() { return userUseCases.findAll(); } diff --git a/sportshub-gui/src/app/components/login/login.component.html b/sportshub-gui/src/app/components/login/login.component.html index 634d651..39d8d7e 100644 --- a/sportshub-gui/src/app/components/login/login.component.html +++ b/sportshub-gui/src/app/components/login/login.component.html @@ -1,13 +1,13 @@ -
+
- +
- +
- +
\ No newline at end of file diff --git a/sportshub-gui/src/app/components/login/login.component.scss b/sportshub-gui/src/app/components/login/login.component.scss index e69de29..f606bdf 100644 --- a/sportshub-gui/src/app/components/login/login.component.scss +++ b/sportshub-gui/src/app/components/login/login.component.scss @@ -0,0 +1,19 @@ +:host { + display: flex; + justify-content: center; + + form { + display: flex; + flex-direction: column; + border: solid 1px #e8e8e8; + padding: 1em; + border-radius: .5em; + gap: 1em; + + div { + display: flex; + flex-direction: column; + justify-content: left; + } + } +} \ No newline at end of file diff --git a/sportshub-gui/src/app/components/login/login.component.ts b/sportshub-gui/src/app/components/login/login.component.ts index 6d94f64..a14f731 100644 --- a/sportshub-gui/src/app/components/login/login.component.ts +++ b/sportshub-gui/src/app/components/login/login.component.ts @@ -27,7 +27,9 @@ export class LoginComponent { } onSubmit(): void { - const loginRequest: LoginRequest = this.loginForm.value; - this.loginService.login(loginRequest); + if (this.loginForm.valid) { + const loginRequest: LoginRequest = this.loginForm.value; + this.loginService.login(loginRequest); + } } } \ No newline at end of file diff --git a/sportshub-gui/src/app/header/header.component.html b/sportshub-gui/src/app/header/header.component.html index 9e5c509..a9ffc8c 100644 --- a/sportshub-gui/src/app/header/header.component.html +++ b/sportshub-gui/src/app/header/header.component.html @@ -1,10 +1,10 @@ SportsHub