Skip to content
Snippets Groups Projects
Commit 7e0e78c6 authored by KASMAMYTOV ELDAR p1712650's avatar KASMAMYTOV ELDAR p1712650 :computer:
Browse files

Merge Fixes + Code Style

parent a7a5e1cc
No related branches found
No related tags found
No related merge requests found
Pipeline #86053 passed
Showing
with 69 additions and 68 deletions
......@@ -3,6 +3,7 @@ package com.mif13.authServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
// extends SpringBootServletInitializer for .war generation
@SpringBootApplication
public class AuthServerApplication extends SpringBootServletInitializer {
......
......@@ -3,30 +3,25 @@ package com.mif13.authServer.controllers;
import com.mif13.authServer.dao.UsersDao;
import com.mif13.authServer.model.User;
import com.mif13.authServer.utils.JwtHelper;
import java.io.Console;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.naming.AuthenticationException;
import javax.ws.rs.POST;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.util.MultiValueMap;
import org.springframework.util.MultiValueMapAdapter;
import org.springframework.web.bind.annotation.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class UserOperations {
......@@ -38,7 +33,6 @@ public class UserOperations {
this.usersRepo = usersRepo;
}
/**
* Procédure de login utilisée par un utilisateur
*
......@@ -53,10 +47,10 @@ public class UserOperations {
@ApiResponse(
responseCode = "204 No Content",
description = "User succesfully logged in",
content = {
@Content ()
}
),
content = {
@Content()
}
),
@ApiResponse(
responseCode = "401 Unauthorized",
description = "Login failed",
......@@ -120,16 +114,15 @@ public class UserOperations {
return response;
}
@Operation(summary = "Réalise la déconnexion.")
@ApiResponses(value = {
@ApiResponse(
responseCode = "204 No Content",
description = "User succesfully logged out",
content = {
@Content ()
}
),
content = {
@Content()
}
),
@ApiResponse(
responseCode = "401 Unauthorized",
description = "",
......@@ -160,7 +153,7 @@ public class UserOperations {
} catch (Exception e) {
e.printStackTrace();
response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
}
}
return response;
}
......@@ -177,16 +170,16 @@ public class UserOperations {
@ApiResponse(
responseCode = "204 No Content",
description = "",
content = {
@Content ()
}
)
content = {
@Content()
}
)
})
@GetMapping("/authenticate")
public ResponseEntity<Void> authenticate(@RequestParam("jwt") String jwt,
@RequestParam("origin") String origin) {
ResponseEntity<Void> response = new ResponseEntity<>(HttpStatus.NO_CONTENT);
return response;
}
}
\ No newline at end of file
......@@ -16,8 +16,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
import java.util.Optional;
import java.util.regex.PatternSyntaxException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
......@@ -34,14 +32,6 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@RestController
@RequestMapping(value = "users")
public class UserRestController {
......@@ -79,7 +69,8 @@ public class UserRestController {
}
)}
)
@GetMapping(value = "/{id}", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
@GetMapping(value = "/{id}", produces = {MediaType.APPLICATION_JSON_VALUE,
MediaType.APPLICATION_XML_VALUE})
//@CrossOrigin(origins = {"http://localhost", "http://192.168.75.68", "https://192.168.75.68"})
public ResponseEntity<User> getUserAsJsonOrXml(@PathVariable String id) {
......@@ -92,7 +83,6 @@ public class UserRestController {
}
}
@GetMapping(value = "/{id}", produces = MediaType.TEXT_HTML_VALUE)
public ModelAndView getUserAsHtml(@PathVariable String id, Model model) {
// "user" nom du template HTML (sans extension)
......@@ -217,7 +207,6 @@ public class UserRestController {
}
}
@Operation(summary = "Modify password of a user by its id")
@ApiResponses(value = {
@ApiResponse(
......
......@@ -4,8 +4,10 @@ import java.util.Optional;
import java.util.Set;
public interface Dao<T> {
/**
* Récupère un utilisateur enregistré
*
* @param id Login de l'utilisateur
* @return Un java.util.Optional qui contient (ou pas) l'utilisateur
*/
......@@ -13,25 +15,29 @@ public interface Dao<T> {
/**
* Récupère tous les utilisateurs enregistrés
*
* @return Un Set de login
*/
Set<String> getAll();
/**
* Crée un utilisateur et le sauvegarde
*
* @param t L'utilisateur à créer
*/
void save(T t);
/**
* Modifie un utilisateur enregistré
* @param t L'utilisateur à modifier
*
* @param t L'utilisateur à modifier
* @param password Le nouveau password
*/
void update(T t, String password);
/**
* Supprime un utilisateur enregistré
*
* @param t L'utilisateur à supprimer
*/
void delete(T t);
......
package com.mif13.authServer.exception;
public class InvalidPasswordException extends UserCreationException {
public InvalidPasswordException() {}
public InvalidPasswordException() {
}
public InvalidPasswordException(String errorMessage) {
super(errorMessage);
}
......
package com.mif13.authServer.exception;
public class InvalidUsernameException extends UserCreationException {
public InvalidUsernameException() {}
public InvalidUsernameException() {
}
public InvalidUsernameException(String errorMessage) {
super(errorMessage);
}
......
package com.mif13.authServer.exception;
public class UserCreationException extends Exception {
public UserCreationException() {}
public UserCreationException() {
}
public UserCreationException(String errorMessage) {
super(errorMessage);
}
......
......@@ -7,6 +7,7 @@ import java.util.regex.PatternSyntaxException;
import javax.naming.AuthenticationException;
public class User {
private final String login;
private String password;
......@@ -26,6 +27,17 @@ public class User {
}
}
public static boolean verifyLogin(String login) throws PatternSyntaxException {
String regex = "^[a-zA-Z][a-zA-Z0-9._-]{3,20}$";
return login.matches(regex);
}
public static boolean verifyPassword(String password) throws PatternSyntaxException {
String regex =
"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#&()–[{}]:;',?/*~$^+=<>]).{8,25}$";
return password.matches(regex);
}
public String getLogin() {
return login;
}
......@@ -59,15 +71,4 @@ public class User {
"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#&()–[{}]:;',?/*~$^+=<>]).{8,25}$";
return password.matches(regex);
}
public static boolean verifyLogin(String login) throws PatternSyntaxException {
String regex = "^[a-zA-Z][a-zA-Z0-9._-]{3,20}$";
return login.matches(regex);
}
public static boolean verifyPassword(String password) throws PatternSyntaxException {
String regex =
"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#&()–[{}]:;',?/*~$^+=<>]).{8,25}$";
return password.matches(regex);
}
}
\ No newline at end of file
......@@ -9,35 +9,39 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
public class CorsConfig {
@Bean
public WebMvcConfigurer configure(){
public WebMvcConfigurer configure() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry){
public void addCorsMappings(CorsRegistry registry) {
// CORS for /login POST - CORS pas reglé
registry.addMapping("/login")
.allowedMethods("POST")
.allowedHeaders("*", "Authorization")
.allowedOrigins("http://localhost", "http://192.168.75.68", "https://192.168.75.68","https://localhost");
.allowedOrigins("http://localhost", "http://192.168.75.68",
"https://192.168.75.68", "https://localhost");
// CORS for /lougout POST - CORS pas reglé
registry.addMapping("/logout")
.allowedMethods("POST")
.allowedHeaders("*", "Authorization")
.allowedOrigins("http://localhost", "http://192.168.75.68", "https://192.168.75.68","https://localhost");
.allowedOrigins("http://localhost", "http://192.168.75.68",
"https://192.168.75.68", "https://localhost");
// CORS for /authenticate GET - Fonctionne
registry.addMapping("/authenticate")
.allowedMethods("GET")
.allowedHeaders("*")
.allowedOrigins("http://localhost", "http://192.168.75.68", "https://192.168.75.68","https://localhost");
.allowedOrigins("http://localhost", "http://192.168.75.68",
"https://192.168.75.68", "https://localhost");
// CORS for /users/{id} GET - Fonctionne
registry.addMapping("/{id}")
.allowedMethods("GET")
.allowedHeaders("*")
.allowedOrigins("http://localhost", "http://192.168.75.68", "https://192.168.75.68","https://localhost");
.allowedOrigins("http://localhost", "http://192.168.75.68",
"https://192.168.75.68", "https://localhost");
}
};
}
......
......@@ -6,9 +6,8 @@ import com.auth0.jwt.exceptions.JWTCreationException;
import com.auth0.jwt.exceptions.JWTVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.auth0.jwt.interfaces.JWTVerifier;
import javax.validation.constraints.NotNull;
import java.util.Date;
import javax.validation.constraints.NotNull;
/**
* Classe qui centralise les opérations de validation et de génération d'un token "métier",
......@@ -67,5 +66,4 @@ public class JwtHelper {
.sign(algorithm);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment