From a9d779b87f53a439ed14d091770eb9886c2a11ad Mon Sep 17 00:00:00 2001 From: Giuli1297 Date: Mon, 8 Nov 2021 10:29:39 -0300 Subject: [PATCH] Paginas personalizadas de login y registro --- curriculumsearch/src/main/java/com/roshka/CurriculumsearchApplication.java | 23 +++++++++++++---------- curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java | 15 +++++++++++++-- curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java | 10 ++++++++-- curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java | 10 ++++++++++ curriculumsearch/src/main/resources/static/main.js | 13 +++++++++---- curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ curriculumsearch/src/main/webapp/jsp/login.jsp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ curriculumsearch/src/main/webapp/jsp/postulante-form.jsp | 2 ++ 8 files changed, 156 insertions(+), 18 deletions(-) create mode 100644 curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp create mode 100644 curriculumsearch/src/main/webapp/jsp/login.jsp diff --git a/curriculumsearch/src/main/java/com/roshka/CurriculumsearchApplication.java b/curriculumsearch/src/main/java/com/roshka/CurriculumsearchApplication.java index 8f876e3..177045b 100644 --- a/curriculumsearch/src/main/java/com/roshka/CurriculumsearchApplication.java +++ b/curriculumsearch/src/main/java/com/roshka/CurriculumsearchApplication.java @@ -6,15 +6,8 @@ import java.util.List; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.roshka.modelo.Ciudad; -import com.roshka.modelo.Departamento; -import com.roshka.modelo.Postulante; -import com.roshka.modelo.PostulanteTecnologia; -import com.roshka.modelo.Tecnologia; -import com.roshka.repositorio.CiudadRepository; -import com.roshka.repositorio.DepartamentoRepository; -import com.roshka.repositorio.PostulanteRepository; -import com.roshka.repositorio.TecnologiaRepository; +import com.roshka.modelo.*; +import com.roshka.repositorio.*; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; @@ -22,6 +15,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Bean; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @SpringBootApplication @EnableJpaRepositories("com.roshka.repositorio") @@ -33,7 +27,8 @@ public class CurriculumsearchApplication { } @Bean - CommandLineRunner runner(PostulanteRepository postRepo,TecnologiaRepository tecRepo,DepartamentoRepository depR, CiudadRepository ciudR) { + CommandLineRunner runner(PostulanteRepository postRepo, TecnologiaRepository tecRepo, DepartamentoRepository depR, + CiudadRepository ciudR, RRHHUserRepository rrhhUserRepository) { return args -> { try { // read json and write to db @@ -53,6 +48,14 @@ public class CurriculumsearchApplication { List postulantes = mapper.readValue(inputStream,typeReference); postRepo.saveAll(postulantes); System.out.println("postulantes Saved!"); + String password = new BCryptPasswordEncoder().encode("test"); + RRHHUser testuser = new RRHHUser(); + testuser.setEmail("test@test.com"); + testuser.setFirstName("test"); + testuser.setLastName("test"); + testuser.setPassword(password); + rrhhUserRepository.save(testuser); + System.out.println("Usuario Test: \nEmail: test@test.com\nPassword: test"); } catch (IOException e){ System.out.println("Unable to save tecnologias: " + e.getMessage()); diff --git a/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java b/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java index df23eb4..08d65bc 100644 --- a/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java +++ b/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java @@ -10,6 +10,7 @@ import org.springframework.security.config.annotation.web.configuration.EnableWe import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import javax.sql.DataSource; @@ -45,17 +46,27 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { - http.authorizeRequests() + http +// .csrf().disable() + .authorizeRequests() .antMatchers("/").authenticated() .antMatchers("/home").authenticated() + .antMatchers("/postulantes").authenticated() .anyRequest().permitAll() .and() .formLogin() + .loginPage("/login") .usernameParameter("email") .defaultSuccessUrl("/home") .permitAll() .and() - .logout().logoutSuccessUrl("/").permitAll(); + .logout() + .logoutUrl("/logout") + .logoutRequestMatcher(new AntPathRequestMatcher("/logout", "GET")) + .clearAuthentication(true) + .invalidateHttpSession(true) + .deleteCookies("JSESSIONID", "remember-me") + .logoutSuccessUrl("/login"); } } \ No newline at end of file diff --git a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java index fae38c2..e5d8d76 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java @@ -25,7 +25,6 @@ import org.springframework.web.bind.annotation.*; @Controller -@RequestMapping("/") public class PostulanteController { PostulanteRepository post; TecnologiaRepository tecRepo; @@ -101,7 +100,14 @@ public class PostulanteController { } System.out.println("hola"); post.save(postulante); - return "redirect:/"; + return "redirect:/postulacion-correcta"; + } + + @GetMapping("/postulacion-correcta") + public String successPostulation(Model model){ + model.addAttribute("mensaje1", "Tu informacion se ha recibido correctamente!"); + model.addAttribute("mensaje2", " espera por que nos pongamos en contacto!"); + return "exitoRegistro"; } @ResponseStatus(HttpStatus.BAD_REQUEST) diff --git a/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java b/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java index 98b26c7..ef5b0de 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java @@ -22,6 +22,11 @@ public class RRHHUserController { this.rrhhUserRepository = rrhhUserRepository; } + @GetMapping("/") + public String redirectOnHome(){ + return "redirect:/home"; + } + @GetMapping("/register") public String showRegistrationForm(Model model) { model.addAttribute("user", new RRHHUser()); @@ -29,6 +34,11 @@ public class RRHHUserController { return "registration"; } + @GetMapping("/login") + public String getLogin() { + return "login"; + } + @PostMapping("/process_register") public String processRegister(HttpServletRequest request, RRHHUser user) { if(Long.parseLong(request.getParameter("registrationCode")) != REGISTER_CODE){ diff --git a/curriculumsearch/src/main/resources/static/main.js b/curriculumsearch/src/main/resources/static/main.js index eb1e56a..2c87e5d 100644 --- a/curriculumsearch/src/main/resources/static/main.js +++ b/curriculumsearch/src/main/resources/static/main.js @@ -173,6 +173,7 @@ function serializeJSON (form) { // Create a new FormData object const formData = new FormData(form); + // Create an object to hold the name/value pairs const pairs = {}; @@ -189,20 +190,24 @@ function serializeJSON (form) { } async function postData(url = '', data = {}) { + var token = document.querySelector("meta[name='_csrf']").content; + var headerxs = document.querySelector("meta[name='_csrf_header']").content; // Default options are marked with * - const response = await fetch(url, { + let senddata = { method: 'POST', // *GET, POST, PUT, DELETE, etc. mode: 'cors', // no-cors, *cors, same-origin cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, *same-origin, omit headers: { - 'Content-Type': 'application/json' - // 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Type': 'application/json', + // 'Content-Type': 'application/x-www-form-urlencoded', }, redirect: 'follow', // manual, *follow, error referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url body: data // body data type must match "Content-Type" header - }); + } + senddata["headers"][headerxs] = token; + const response = await fetch(url, senddata); return response; // parses JSON response into native JavaScript objects } formValidator() diff --git a/curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp b/curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp new file mode 100644 index 0000000..f462dbf --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp @@ -0,0 +1,51 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + +
+
+ +
+

Genial!

+

${mensaje1}
${mensaje2}

+
+ + \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/login.jsp b/curriculumsearch/src/main/webapp/jsp/login.jsp new file mode 100644 index 0000000..1a30850 --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/login.jsp @@ -0,0 +1,50 @@ +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + Login + + + + +
+
+
+
+
+
+ + + + +

Sign in

+
+ + +
+ +
+ + +
+ + + +
+ +
+ +
+
+
+
+
+
+ + + + diff --git a/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp b/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp index c11b9e2..b1cc58a 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp @@ -468,6 +468,8 @@ + + -- libgit2 0.26.0